问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用MATLAB照书上代码打后提示:"错误: 此上下文中不允许函数定义."

发布网友 发布时间:2024-10-04 07:54

我来回答

2个回答

热心网友 时间:2024-10-27 02:03

1、打开编译器,在命令行输入edit打开。

2、输入Function代表此文件是函数文件。

3、如果有返回值在等号的左边输入,多个返回值用中括号。

4、等号右面是函数名加括号,括号内是参数。

5、使用%注释,注释的第一行是说明函数的功能。

6、传入两个点的坐标,之后计算两点的距离,传给返回值y。

7、保存文件,保存的时候文件名和函数名保持一致。

热心网友 时间:2024-10-27 02:03

其实代码是正确的,问题在于代码包括两个文件,一个是function文件“calLength.m”,一个是script文件(可以命名为“tmp_01.m”);并且执行tmp_01.m时,输入也要满足特定格式。具体如下:

“calLength.m”的内容是:

function segs=calLength(P1,P2)
segs.length=[];
segs.index_x =[];
segs.index_y =[];
segs.index =[];
P1_x = P1(1);
P1_y = P1(2);
P2_x = P2(1);
P2_y = P2(2);
xmin = min(P1_x,P2_x);
ymin = min(P1_y,P2_y);
xmax = max(P1_x,P2_x);
ymax = max(P1_y,P2_y);
if(P1_x == P2_x) && (round(P1_x) == P1_x)...
|| (P1_y == P2_y) && (round(P1_y) == P1_y)
return;
end
pos =reshape(1:100,10,10);
if(P1_x == P2_x) && (round(P1_x) ~= P1_x)
SP = unique([ymin,ymax,ceil(ymin):floor(ymax)]);
for t =1:size(SP,2)-1
segs(t).length= SP(t+1)-SP(t);
segs(t).index_x =ceil(P1_x);
segs(t).index_y = max(ceil(SP(t+1)),ceil(SP(t)));
segs(t).index = pos(segs(t).index_x, segs(t).index_y);
end
end
if(P1_x ~= P2_x)
K = polyfit([P1_x,P2_x],[P1_y,P2_y],1);
xpx =[];
xpy =[];
for i=ceil(xmin):floor(xmax)
xpx(i-ceil(xmin)+1) =i;
xpy(i-ceil(xmin)+1) = K(1)*i+K(2);
end
ypx =[];
ypy =[];
for j=ceil(ymin):floor(ymax)
ypy(j-ceil(ymin)+1) =j;
syms x;
ypx(j-ceil(ymin)+1) = double(solve(K(1)*x + K(2) -j, x));
end
SP = unique([P1_x,P2_x,xpx,ypx;P1_y,P2_y,xpy,ypy]','rows');
L = @(x)sqrt((SP(x+1,1) - SP(x,1)).^2+ (SP(x+1,2) - SP(x,2)).^2);
for t =1:size(SP,1)-1
segs(t).length= L(t);
segs(t).index_x = max(ceil(SP(t+1,1)),ceil(SP(t,1)));
segs(t).index_y = max(ceil(SP(t+1,2)),ceil(SP(t,2)));
segs(t).index = pos(segs(t).index_x, segs(t).index_y);
end
end
n =[];
for i=1:size(segs,2)
if segs(i).length<eps
n =[n i];
end
end
segs(n) =[];
end

如图所示:

“tmp_01.m”的内容是:

clear;
clc;
clf;
x =linspace(0,10,11);
y =linspace(0,10,11);
[X,Y]=meshgrid(x,y);
line(X,Y,'color','b');
line(X',Y','color','b');
axis equal;
axis([0 10 0 10]);
set(gca,'xtick',0:10);
gridindex =reshape(1:100,10,10)';
numposx = 0.5*(X(1:end-1,2:end)+X(1:end-1,1:end-1))-0.1;
numposy = 0.5*(Y(2:end,1:end-1)+Y(1:end-1,1:end-1));
for i = 1 : 10
for j = 1 : 10
text(numposx(i,j),numposy(i,j),num2str(gridindex(i,j)));
end
end
P1 = input('P1=');
P2 = input('P2=');
segs = calLength(P1,P2);
line([P1(1) P2(1)],[P1(2) P2(2)],'color','r');
display('所经过的网格序号\长度分别为:');
for i=1:size(segs,2)
display(['序号: ',num2str(segs(i).index)]);
display(['长度: ',num2str(segs(i).length)]);
end

如图所示:

按F5执行tmp_01.m,命名行窗口,出现P1待输入的提示,如下图所示:

作为例子,输入[1,2],表示坐标为[1,2]的点,按enter键结束输入。

可以发现,有提示输入P2,如下图所示:

作为例子,输入[6,8],按enter键结束输入。就可以正确的得到结果。

命名行窗口:

图形窗口:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...多少公斤的东西。托运多少?托运能拿剪刀,洗发水这些吗? 打鼾是由于空气通过口咽部使哪个部分振动引起的 ...身高153厘米,体重57.5公斤,要减多少斤才正常,还有怎样下定决心减肥... 男人经常睡一个女人就是爱她吗? 一个男人和一个女人没认识几天就提出性要求,这男人爱女人吗?还是只是性... 小米随身wifi连上电脑后能拿着到处走不? ...买门票共用去142.5元,已知1张成人票与2张�� ...已知|张成人票与2张儿童票相等。1张成人票多少元 ...买门票共用去142.5元,已知1张成人票与2张儿童票的票价相等。1... 工业燃气烤箱价格多少钱一台 求极乐净土-GARNiDELiA的伴奏 要纯音乐的 谢谢QWQ 最近b站很火的极静乐土出自什么啊,求解答(๑´ㅂ`๑) 血糖高那些食物不能吃 我是浙江衢州农村的孩子,现在想创业需要资金,想通过贷款 CMCC-EDU能连接到网络但不能出现登入页面 我想在衢州做点小生意,大家给点意见做什么好 为什么在宿舍里CMCC-EDU信号满格却连接不了,但是在宿舍外面又可以连接... 我们学校的移动无线网络CMCC-EDU能连上,但打开网页时打不开登录界面,所... ...edu 最近能连接上,但是就是没法打开登录页面,连接别的无线,都可以上... 笔记本在家里能连上无线的,在学校里就连不上cmcc-edu,显示网络不安全... 我的笔记本以前也用CMCC,登录界面是CMCC的,可今天连接时,出现的却是... 女朋友总是把自己打扮的像个小学生,我劝她改变,她不听,现在她喜欢上别... 衢州高中有哪些 衢州哪个高中好 我绝得自己的交际能力连个小学生都不如,真的,上学的时候好像就是在自己... 浙江衢州高中有哪些 2021年衢州高中录取人数 衢州市2021年中考录取分数线是多少 我处理器是4690K,主板是Z97,超频用的,内存条配多大频率合适?普通常见... 衢州哪个初中好 用matlab软件进行层次分析,出现“此上下文中不允许函数定义"错误。 宁波到黄山火车的路线(价格及时间)三天旅游的具体安排,还有黄山旅游... 宁波去黄山怎么走方便怎么走宁波去黄山方便 从宁波出发去黄山旅游,二天时间,咨询合适路线和不可错过的景点? 从宁波到黄山具体的攻略 房地产主体要素有哪些 点菜的时候饭店服务员手中拿着像平板电脑的东西是什么 请问:我能把钱存到一个我市刚开不到一个月的理财公司吗,我怎么信任他... 投资理财公司靠谱吗?想要安全稳健,钱要怎么放? 一个朋友的关系户是开什么理财公司,他给我提建议把我的钱放到他们公司做... 哪家的点菜设备及性价比 比较好 我有一家饭店要开张 马上要买这些东西... 最近俺的饭店不景气啊!!怎么才能节省点成本呢?听说现在流行电子菜谱... 饭店点菜宝 买单怎么买 饭店点菜系统怎么用 全手动数码相机光圈、快门、曝光量、感光度应如何调整 求解单反在各种情况下的感光度 还有在各种光线下拍出的最好效果. 有时... 中秋快乐的祝福语老师怎么说 有鼻炎的人得感冒了吃什么药最好 ...感冒的问题还是得了鼻炎啊?请指点,还有吃什么药好的快些啊?_百度知... 有虚寒型过敏性鼻炎,感冒了吃什么药好