作业帮 > 综合 > 作业

我的程序是这样的s=0+eps:0.01:1000; %s从0变到1000y=vectorize('(-.115*((c

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 19:15:43
我的程序是这样的
s=0+eps:0.01:1000; %s从0变到1000
y=vectorize('(-.115*((cos(.943e-2*s^(1/2))-11.6*s^(1/2)*sin(.943e-2*s^(1/2)))*cos(1.36*s^(1/2))+40.4*(-.892e-4*sin(.943e-2*s^(1/2))/s^(1/2)-.104e-2*cos(.943e-2*s^(1/2)))*s^(1/2)*sin(1.36*s^(1/2)))*cos(.379e-1*s^(1/2))-.115*(261.*(-.323e-1*cos(.943e-2*s^(1/2))+.374*s^(1/2)*sin(.943e-2*s^(1/2)))*sin(1.36*s^(1/2))/s^(1/2)+6.45*(-.469e-2*sin(.943e-2*s^(1/2))/s^(1/2)-.546e-1*cos(.943e-2*s^(1/2)))*cos(1.36*s^(1/2)))*s^(1/2)*sin(.379e-1*s^(1/2)))*cos(.121*s^(1/2))') %将所有乘号和除号改成点乘和点除
plot(s,y);
grid on
可是却出错
Error using ==> plot
Error in color/linetype argument
Error in ==> gaidiancheng at 3
plot(s,y); 说我什么画的什么有错,不怎么懂,若是不自己手改成点乘和点除的话好像不会出现这个错误,请高手指教,
你的y在vectorize后会变成一个符号变量,故plot报错,而不用vectorize,y就是直接计算后面表达式的数值,因此不会出现这个问题.
在plot(s,y);前加上y=eval(y);将y计算成数值再画图就行了.eval(y),相当于将所有乘号和除号改成点乘和点除后的表达式输入到matlab命令窗口中,再执行一遍
再问: 谢谢哦,我还想问一个问题,就是其实我的这个y是通过一个式子算出来的,本来我想直接在那个程序中 输入y1=vectorize('y') 就是把y中所有乘号和除号改成点乘和点除 但是结果就是出来 y 而不是那个式子,不知道我有没有表达清楚~~~~谢谢~~
再答: 例: >> y = 'x^2' %假设y的表达式是x^2 y = x^2 >> y1 = vectorize(y) %将y代表的函数(y=x^2)点乘化 y1 = x.^2 >>y1 = vectorize('y') %将'y'点乘化,此时'y' 代表一个函数,它的表达式为y = y y1 = y %你想问的是这个吗
再问: 嗯嗯,是呢,就是说不要打引号就出来了是吧~~~~·谢谢~~