求matlab绘图大神,隐函数绘图

请问以下程序错在哪了?为啥第2个图作不出来?仔细讲解一下for循环那段,谢谢clc;clearall;w=[];z=[];figure;h=ezplot('w^(z/50... 请问以下程序错在哪了?为啥第2个图作不出来?仔细讲解一下for循环那段,谢谢
clc;
clear all;
w=[];
z=[];
figure;
h=ezplot('w^(z/500)*0.01*(pi*sin(z/500*pi/2)+2*cos(z/500*pi/2)*log(w))+2*log(w)',[0,10^6,0,1000]);
x=get(h,'Xdata');
y=get(h,'Ydata');
[m,n]=size(x); %从这里开始到for循环结束没看懂,x指的是什么?从哪来的?
for i=1:m
for j=1:n

w=[w x{i,j}(1:end)];%这是什么?
z=[z y{i,j}(1:end)];
end
end
f=1000*(1+1./((w.^z*0.01).^2)+2*cos(z*pi/2)./(w.^z*0.01)).^0.5;
figure;
plot(w,f,'--r');
xlabel('w');
ylabel('f');
展开
 我来答
yuchaohua1989
推荐于2016-06-25 · TA获得超过167个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:114万
展开全部

改一下程序

clc;
clear all;
w=[];
z=[];
figure;
h=ezplot('w^(z/500)*0.01*(pi*sin(z/500*pi/2)+2*cos(z/500*pi/2)*log(w))+2*log(w)',[0.01,10,-10,10]);
x=get(h,'Xdata');% 获取上面画出的图所有点的横坐标
y=get(h,'Ydata'); %获取上面画出的图所有点的纵坐标
if strcmp(class(x),'double')&strcmp(class(y),'double') %判断是否是double类型如果是就转为cell类型
    x=num2cell(x);
    y=num2cell(y);
end
[m,n]=size(x); %求x大小,和y一样
for i=1:m
for j=1:n
w=[w x{i,j}(1:end)];)];%取出x的第i行j列的元胞,它是一个矩阵或者向量,不管怎么样,通过(1:end)转化为一个行向量放到w向量中。每次执行一次,w就增加一个行向量x{i,j}(1:end)

z=[z y{i,j}(1:end)];
end
end
f=1000*(1+1./((w.^z*0.01).^2)+2*cos(z*pi/2)./(w.^z*0.01)).^0.5;
figure;
plot(w,f,'--r');
xlabel('w');
ylabel('f');

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式