matlab 如何用 surfc 或 contour的 等值线图 投影到指定的平面上,而不是z=0的平面上?
1个回答
展开全部
这是原始语句:
[X,Y,Z] = peaks(30);
figure,surfc(X,Y,Z)
colormap hsv
axis([-3 3 -3 3 -10 5])
将等值线图 投影到指定的平面 z=-20:
h = surfc(X,Y,Z);
zdata = get(h(2:end),'zdata');
NewZdata = cellfun(@(x) x*(-20)/zdata{1}(1),zdata, 'UniformOutput',false); % x*(-20)
for k = 1:length(h)-1;
set(h(k+1),'zdata',NewZdata{k});
end;
将等值线图 投影到指定的平面 z=+20:
h = surfc(X,Y,Z);
zdata = get(h(2:end),'zdata');
NewZdata = cellfun(@(x) x*(20)/zdata{1}(1),zdata, 'UniformOutput',false); % x*(+20)
for k = 1:length(h)-1;
set(h(k+1),'zdata',NewZdata{k});
end;
修改x*(+20)括号内的值,历将等值线图 投影到指定的平面。
[X,Y,Z] = peaks(30);
figure,surfc(X,Y,Z)
colormap hsv
axis([-3 3 -3 3 -10 5])
将等值线图 投影到指定的平面 z=-20:
h = surfc(X,Y,Z);
zdata = get(h(2:end),'zdata');
NewZdata = cellfun(@(x) x*(-20)/zdata{1}(1),zdata, 'UniformOutput',false); % x*(-20)
for k = 1:length(h)-1;
set(h(k+1),'zdata',NewZdata{k});
end;
将等值线图 投影到指定的平面 z=+20:
h = surfc(X,Y,Z);
zdata = get(h(2:end),'zdata');
NewZdata = cellfun(@(x) x*(20)/zdata{1}(1),zdata, 'UniformOutput',false); % x*(+20)
for k = 1:length(h)-1;
set(h(k+1),'zdata',NewZdata{k});
end;
修改x*(+20)括号内的值,历将等值线图 投影到指定的平面。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询