Combining two surface plots
41 ビュー (過去 30 日間)
古いコメントを表示
I'm trying to combine two surface plots in a single figure. The problem is that one of the two is plotted on the wrong axis. The reason is that:
surface1 = surf(x,y,z)
surface2 = surf(x,z,y)
This is due to the mathematical equations behind x,z and y. I can't change them, i.e. rearrange z in terms of y for surface2.
Is there a way to map the two to the correct axes?
2 件のコメント
採用された回答
Walter Roberson
2021 年 7 月 30 日
You can
ax = gca;
yellow = surf(ax, x, p, a);
hold(ax, 'on')
M = [1 0 0 1; 0 0 1 0; 0 1 0 0; 0 0 0 0];
hg = hgtransform(ax, 'Matrix', M);
green = surf(hg, x, a, p);
hold(ax, 'off')
xlim(ax, 'auto'); ylim(ax, 'auto'); zlim(ax, 'auto');
5 件のコメント
Walter Roberson
2021 年 7 月 30 日
In order for green = surf(hg, x, a, p); to work, then:
- if x is a vector, then length(x) == size(p,2) -- columns not rows
- if x is an array, then size(x) == size(p)
- if a is a vector, then length(a) == size(p,1) -- rows not columns
- if a is an array, then size(a) == size(p)
It is not an error to use an array for x by a vector for a, or a vector for x but an array for a, or a vector for both or an array for both -- but they have to match the appropriate dimension of p.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!