matlab未定义与 'double' 类型的输入参数相对应的函数 'int'

ne=10.^12;
syms k,r,s;
Te=6000;
a=3.3*10.^5;
E0=6.2;
b=pi/4;
B=0.5;
k=linspace(0,10,0.01);
w=solve('k^2/(w^2-k^2)*(E0)*[-(cos(b)*cos(b))/(w+k^2)-(sin(b)*sin(b))/(w+a*k^2)+(cos(b)*cos(b))/(w-k^2)+(sin(b)*sin(b))/(w-k^2)]+2*k^2/(w^2-k^2)*(sin(b)*cos(b))/(w-k^2)*B*(E0)','w')
r=imag(w);
s=abs(r);
plot(int(k),double(s));
这是程序想要得到一个二维图,但是最后提示 未定义与 'double' 类型的输入参数相对应的函数 'int'
求大神来解答

最后你那句plot(int(k),double(s));里的int(k);不对。你如果想以k为横坐标,直接把int去掉,如果非想要变成整数可以用floor(k);
注:fix:向零取整
floor:向小取整
round:四舍五入
ceil:向大取整追问

改动之后显示
Invalid indexing or function definition. When defining a function, ensure that the body of the function is a SYM object. When indexing,the input must be numeric, logical or ':'.

追答

你先看看工作区,有没有r,s,w这几个量,还有你的k和s的元素数目是否一致,一致的话你就最后一句输入plot(k,s);

追问

r s w在解方程中都有
改动之后变成
错误使用 plot
无法从 sym 转换为 double。

温馨提示:答案为网友推荐,仅供参考
相似回答