在 MATLAB 中使用 surf 创建沿 z 轴的堆叠二维矩阵
Create stacked 2d matrix along z axis with surf in MATLAB
下图只是一个带有surf的二维数组的表示。我想创建一个类似的图形,其中 10 个这样的二维数组彼此堆叠在一起,沿 z 轴有某种偏移量。
figure();
surf(X);
colormap(hsv);
shading interp;
campos([-70 -150 80]);
grid on;
set(gcf,'color','w');
只需使用 hold on
多次调用 surf
,应用逐渐增加的偏移量。
默认(surf
的1输入版本),偏移量将影响每个表面显示的颜色。下面是一个包含三个二维数组的示例。请注意,每个峰峰值幅度都不同。
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30); % cell array containing three 2D arrays
offset = 7; % desired offset
hold on
for k = 1:numel(x)
surf(x{k} + offset*(k-1))
end
campos([-100 -170 90])
grid on
为了防止偏移影响颜色,即为所有表面实现一致的颜色,使用 surf
的 2 或 4 输入版本分别指定高度和颜色:
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30);
offset = 7;
hold on
for k = 1:numel(x)
surf(x{k} + offset*(k-1), x{k}) % Only this line has been changed
end
campos([-100 -170 90])
grid on
根据值生成颜色的堆叠平面(无高度变化):修改输入参数如下:
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30);
offset = 7;
hold on
for k = 1:numel(x)
surf(repmat(offset*(k-1), size(x{k})), x{k}) % Only this line has been changed
end
campos([-100 -170 90])
grid on
下图只是一个带有surf的二维数组的表示。我想创建一个类似的图形,其中 10 个这样的二维数组彼此堆叠在一起,沿 z 轴有某种偏移量。
figure();
surf(X);
colormap(hsv);
shading interp;
campos([-70 -150 80]);
grid on;
set(gcf,'color','w');
只需使用 hold on
多次调用 surf
,应用逐渐增加的偏移量。
默认(surf
的1输入版本),偏移量将影响每个表面显示的颜色。下面是一个包含三个二维数组的示例。请注意,每个峰峰值幅度都不同。
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30); % cell array containing three 2D arrays
offset = 7; % desired offset
hold on
for k = 1:numel(x)
surf(x{k} + offset*(k-1))
end
campos([-100 -170 90])
grid on
为了防止偏移影响颜色,即为所有表面实现一致的颜色,使用 surf
的 2 或 4 输入版本分别指定高度和颜色:
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30);
offset = 7;
hold on
for k = 1:numel(x)
surf(x{k} + offset*(k-1), x{k}) % Only this line has been changed
end
campos([-100 -170 90])
grid on
根据值生成颜色的堆叠平面(无高度变化):修改输入参数如下:
x{1} = .2*peaks(30);
x{2} = .4*peaks(30);
x{3} = .8*peaks(30);
offset = 7;
hold on
for k = 1:numel(x)
surf(repmat(offset*(k-1), size(x{k})), x{k}) % Only this line has been changed
end
campos([-100 -170 90])
grid on