matlab用3个for循环画三变量函数图,如f=x+y+z,xyz是三个坐标轴,f是因变量,在xyz空间中用颜色表示大小

matlab用3个for循环画三变量函数图,如f=x+y+z,xyz是三个坐标轴,f是因变量,在xyz空间中用颜色表示大小,第1张

这是三元函数,须在四维空间中表示其图形,于是其图形是无法图示的。
用颜色描述f=x+y+z是可行的,也简单:
mesh(x,y,z,f)

surf(x,y,z,f)

不清楚你什么意思,
如果是想在多个窗口中显示子图就用figure命令;
你可以在每画一个子图前加一个figure;这样再画出的图形就会在新的窗口中出现了,否则后一图形会将图形窗口中的上一子图覆盖;
如果是想在同一窗口中显示多个子图的话,可以使用subplot(a,b,c)函数
在画每个子图前加一个上述命令,其中a表示子图的总行数,b表示子图的总列数,c表示子图的个数序号,具体可参见MATLAB的帮助信息;如:help subplot

用fft就能画时间数据频谱图。\x0d\比如说你下载的地震波是一个传感器在一段时间内得到的数据,那么这组数据应该是个向量,比如说设成向量x, 假设这组数据的采样频率是Fs,数据x的长度为L,设其频谱为X。Matlab程序为:\x0d\X=fft(x);\x0d\X_Mag=abs(X);\x0d\f=0:Fs/L:Fs-Fs/L;\x0d\plot(f, X_Mag);\x0d\\x0d\这里X_Mag为频谱幅度,用plot画出频谱幅值图。f为对应的频率,画出的频谱从0到Fs, 由于得到的数据是离散的采样数据,所以频率是对称的,你只需要分析频率从0到Fs/2的频率就行了。

for m=1:4
for n=1:4
N(m,n)=m+n;
end;
end;
[mm,nn] = meshgrid(1:m,1:n);
mesh(mm,nn,N);

1 请问你的图上最终要保留几组曲线?我理解是,对每组(Tc, Tm),都能解出两条曲线,这称为一组。
2 plot(t, X); 这一句话就可以同时绘制出同一组内的两条曲线,不必分开画。
3 出于调试的方便,建议把legend那一段先去掉。
4 如果没有特殊的必要,建议把所有曲线全部计算完毕后,再另起一个for循环画图。这样一边算一边画效率会比较低。

p=p(x,y),p作为x,y的二元函数,其关于x,y的图形不是曲线,而是曲面。
可用meshgrid和mesh函数来绘制曲面,举个例子如下,具体用法可参加help mesh等。:lol
[x,y]=meshgrid(-1:05:1);
z=x^2+sin(y);
mesh(x,y,z)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13397893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存