matlab图形绘制基础(东北大学MOOC笔记)
生活随笔
收集整理的這篇文章主要介紹了
matlab图形绘制基础(东北大学MOOC笔记)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
%% 二維圖形繪制
% 多縱軸曲線繪制
figure(1);
t = 0:0.01:2*pi;
y1 = sin(t);
y2 = 10*cos(t);
% plotyy(t, y1, t, y2);
yyaxis left
plot(t, y1);
ylim([min(y1), max(y1)]);
yyaxis right
plot(t, y2);
ylim([min(y2), max(y2)]);% 繪制極坐標圖
figure(2);
theta = 0 : 0.01 : 2*pi;
rho = 5 * cos(theta);
polar(theta, rho)% 幾個特殊二維圖
figure(3);
t = 0 : 0.2 : 2*pi;
y = sin(t);
subplot(2, 2, 1);
stairs(t, y); % 階梯圖
subplot(2, 2, 2);
stem(t, y); % 點柱圖
subplot(2, 2, 3);
bar(t, y); % 條形圖
subplot(2, 2, 4);
semilogx(t, y); % 半對數坐標圖% 隱函數繪圖
figure(4);
f = 'x^2*sin(x+y^2) + y^2*exp(x+y) + 5*cos(x^2+y)';
subplot(1, 2, 1);
h = ezplot(f, [-10, 10]);
% 注:這里函數是字符串形式,不能換成fplot,因為fplot只支持函數句柄
set(h, 'Color', 'red');
fh = @(x) x.^2;
subplot(1, 2, 2);
fplot(fh, [-10, 10]); %fplot只能處理單變量% 導入數據
dat = load('test.dat');
% plot3(dat(:, 1), dat(:, 2), dat(:, 3), '.');%% 三維圖形繪制
% 三維曲線
figure(5);
t = 0 : 0.01 : 2*pi;
x = t.^3.*sin(3*t).*exp(-t);
y = t.^3.*cos(3*t).*exp(-t);
z = t.^2;
subplot(2, 1, 1);
stem3(x, y, z);
hold on;
plot3(x, y, z);
grid on;
hold off;
subplot(2, 1, 2);
comet3(x, y, z); % 運行軌跡圖% 三維曲面繪制
figure(6);
[x, y] = meshgrid(-3:0.1:3, -2:0.1:2);
z = (x.^2 - 2*x).*exp(-x.^2 - y.^2 - x.*y);
subplot(1, 2, 1);
mesh(x, y, z); % 繪制出3D圖
subplot(1, 2, 2);
surf(x, y, z); % 繪制出表面圖
shading flat; % 改變表面圖效果figure(7); % 變步長
xx = [-2:0.1:-1.2, -1,1:0.02:-0.9, -0.8:0.1:0.8, 0.9:0.02:1.1, 1.2:0.1:2];
yy = [-1:0.1:-0.2, -0.1:0.02:0.1, 0.2:0.1:1];
[x, y] = meshgrid(xx, yy);
z = 1./(sqrt((1-x).^2 + y.^2)) + 1./(sqrt((1+x).^2 + y.^2));
surf(x, y, z);
shading flat;
zlim([0, 15]);figure(8); % 分段函數處理
[x1, x2] = meshgrid(-1.5:0.1:1.5, -2:0.1:2);
p = 0.5457 * exp(-0.75*x2.^2 - 3.75*x1.^2 - 1.5*x1) .* (x1+x2>1) + ...0.7575 * exp(-x2.^2 - 6*x1.^2) .* ((x1+x2>-1)&(x1+x2<=1)) + ...0.5457 * exp(-0.75*x2.^2 - 3.75*x1.^2 + 1.5*x1) .* (x1+x2<=-1);
surf(x1, x2, p);
xlim([-1.5, 1.5]);figure(9); % 參數方程表面圖(以莫比烏斯帶為例)
syms u v;
x = cos(u) + v*cos(u)*cos(u/2);
y = sin(u) + v*sin(u)*cos(u/2);
z = v*sin(u/2);
fsurf(x, y, z, [0, 2*pi, -0.5, 0.5]);
% 注:這里用ezsurf也可以,matlab建議用fsurf,建議信息:ezsurf支持函數句柄和字符串,
% fsurf支持函數句柄,不支持字符串figure(10); % 繪制球面
[x, y, z] = sphere(50);
% sphere(n)生成(n+1)*(n+1)的球面數據,半徑為1,有一個數據為全0
x1 = 0.3*x + 0.9;
y1 = 0.3*y - 0.8;
z1 = 0.3*z + 0.6;
surf(x1, y1, z1);
axis('equal');figure(11); % 繪制柱面:cylinder函數
z0 = -1:0.1:3;
r = exp(-z0.^2/2).*sin(z0);
[x, y, z] = cylinder(r, 100);
surf(x, y, z);
?
總結
以上是生活随笔為你收集整理的matlab图形绘制基础(东北大学MOOC笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python绘制盖尔圆并做特征值的隔离
- 下一篇: 觉醒迦尔纳至少需要几天可以得到