
您好,根据您描述的问题,提示matlab表达式无效,那就说明您写的matlab式子格式不对,语法不对。请修正。
1.好像少了一个结尾的括号)
2.其次,提示可能需要使用圆括号
3.如果还不行:
我注意到您定义的i和j变量是在循环中使用的,而且循环中的式子没有错误,你最后的式子有错误,那就说明这个i和j可能只是局部变量,只在循环部分有用,在下面使用无效。
解决方法是,根据您的具体需要,把报错的式子放在循环里面或者把i和j定义为全局的变量。
根据你的问题,对代码进行了相应的修改,具体如下
x =10000;
y = 100000;
a = 1000:1000:11000;
b = 0:1000:100000;
numA = length(a);
numB = length(b);
Sf = zeros(numA, numB);
for i=1 : numA
for j=1 : numB
sf(i,j) =((a(1,i).*a(1,i))/(1+(10000.*b(1,j)))/(a(1,i).*a(1,i)))+(x-y);
end
end
[a, b]= meshgrid(a, b);mesh(Sf);
shading flat
运行的结果如下:
如果问题得到解决的话请点 采纳~~
如果您在使用Matlab时提示表达式无效,那么有可能是几种原因:
1.语法错误:您可能没有按照Matlab的语法格式输入命令,请检查您的代码。
2.变量未定义:您可能在访问未定义的变量,请检查您的代码是否引用了未声明的变量。
3.函数不存在:您可能在使用未安装的函数或不存在的函数,请检查您的代码是否引用了未安装的函数。
4.输入不正确:您可能输入了错误的参数或输入了不正确的类型,请检查您的输入。
如果您无法确定错误的原因,可以尝试获取更多的错误信息,例如使用Matlab的“try-catch”语句或使用函数“lasterr”获取最后的错误信息。