作业帮 > 综合 > 作业

帮忙看看这个程序哪出问题了,老提示n没定义

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/29 14:23:47
帮忙看看这个程序哪出问题了,老提示n没定义
a=linspace(400,1200,40);
r=300;
k=2*pi/r;
Sr=1.56;
Smax=9.75;
Wp=1.36e+7;
Wt=1.45e+5;
Uo=pi*4e-7;
So=8.85e-12;
S1=sqrt(Uo*So);
W=k/S1;
Sd=Smax-Wp*Wp/W/(W+i*Wt);
m=2;
n=sqrt(Sd*Sr/(Sd+Sr)-((m-1)/(k*a))^2);
plot(a,n);
帮忙看看这个程序哪出问题了,老提示n没定义
你程序我运行了,不是n没定义,是(k*a)^2语句非法,因为^只能用于标量或者方阵,而你的a为行向量,改为power(k*a,2)(不知道你的目的是什么,那个平方的目的是什么?)不明白继续问;希望采纳! 另外其他人别乱回答,这个是matlab语言,不是c或c++,对变量不用定义,更不用double!希望不要误导别人;刚接触matlab的人很容易在矩阵维数上犯错误! 就是这句中的n=sqrt(Sd*Sr/(Sd+Sr)-((m-1)/(k*a))^2);   矩阵维数不对;
再问: 为什么我的总是提示??? Undefined function or variable 'n'.
再答: 你的可能是老版本的matlab  我的是2011a  我运行的时候没提示n怎么样,  你得从问题源头找解决办法,你可以在屏蔽最后两句的情况下测试这一句  (k*a)^2  你看是不是同样有问题;见下图:
再问: 单独测试power(k*a,2)没问题, 但是整体运行时提示矩阵维数必须一致啊
再答: 问题出在1/向量,因为power(k*a, 2)的结果是一个N维向量,1/向量是不行的,我不知道你的目的,你的公式是否真的接近你自己的想法,你的考虑清楚,你的n=...太含糊,前半部分是复数,后半部分是向量,没法加的! 你可以将问题继续分解,看你后来的plot,n应该是一个向量,与a同维度,你慢慢调试吧