代码如下:
clear;clc;
B=10000;
s=100000;
a=1000:100:11000;
r=0:1000:100000;
numA=length(a);
numB=length(r);
Sf=zeros(numA,numB);
for i=1:numA
for j=1:numB
Sf(i,j)=(a(1:i).*a(1:i))./((1+0.5*20000*r(1:j)./(a(1:i)*a(1:i)))*2*0.5)+(B-s);
end
end
[a,r]=meshgrid(a,r);
mesh(Sf);
shading flat
运行后报错,问题有两个:首先不清楚左右侧是指的什么,其次,运行后i的值为1,j的值为2,不理解为什么
希望有大佬可以帮忙解答
左侧指的是等号左边表达式 Sf(i,j) ,右侧指的是等号右边的表达式 (a(1:i).*a(1:i))./((1+0.5*20000*r(1:j)./(a(1:i)*a(1:i)))*2*0.5)+(B-s) 。
j的值为2的时候 r(1:j)就已经是二维的了,所以会出现等号左右两边维度不匹配的错误。
这句 Sf(i,j)=(a(1:i).a(1:i))./((1+0.520000*r(1:j)./(a(1:i)a(1:i)))20.5)+(B-s); 有问题
运行完 i=1,j=2 是因为,刚好运行到这一步时出现的问题。
应该将a和r里的冒号,改成逗号。即,改成 Sf(i,j)=(a(1,i).a(1,i))./((1+0.520000r(1,j)./(a(1,i)*a(1,i)))20.5)+(B-s);
得到如下结果图
请问解决了吗?
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m