请大神帮忙看看这段MATLAB的m文件代码哪里不对,急等答案function a=benjin(x)syms x n ya=1000:1000:60000;n=zeros(1,60);y=x*2-2*a*0.01;n=log(x*2/y)/log(1+0.005);plot(a,n)初学者.怎么改都编译不过.纠结啊.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/17 01:05:56

请大神帮忙看看这段MATLAB的m文件代码哪里不对,急等答案function a=benjin(x)syms x n ya=1000:1000:60000;n=zeros(1,60);y=x*2-2*a*0.01;n=log(x*2/y)/log(1+0.005);plot(a,n)初学者.怎么改都编译不过.纠结啊.
请大神帮忙看看这段MATLAB的m文件代码哪里不对,急等答案
function a=benjin(x)
syms x n y
a=1000:1000:60000;
n=zeros(1,60);
y=x*2-2*a*0.01;
n=log(x*2/y)/log(1+0.005);
plot(a,n)
初学者.怎么改都编译不过.纠结啊.

请大神帮忙看看这段MATLAB的m文件代码哪里不对,急等答案function a=benjin(x)syms x n ya=1000:1000:60000;n=zeros(1,60);y=x*2-2*a*0.01;n=log(x*2/y)/log(1+0.005);plot(a,n)初学者.怎么改都编译不过.纠结啊.

改成下面的就可以了:用点除(矩阵维数得匹配,但光改n=log(.)那行话,是不够的.此外x得定义,要不会出现Conversion to double from sym is not possible.这个错误,原因是syms与double之间不匹配)

syms n y

a=1000:1000:60000;

x=1000

n=zeros(1,60);

y=x*2-2*a*0.01;

n=log(x*2./y)/log(1+0.005);

plot(a,n)

我知道你的意思,是想输入一个x然后画出图.

但那样的话,就会出现我上面说的Conversion to double from sym is not possible.错误.

x是syms型,后面的数据y,n都是syms,而a却是double型的.

你可以试试哦,不定义x话,是不是出现这个错误

这样是无法作图的.

只有定义x才可以匹配.

你可以不把它写成函数,就需要x多少的时候,直接定义就好啦.