Change size 3D matrix
3 ビュー (過去 30 日間)
古いコメントを表示
Hi, I have a 3D matrix defined as: EP(N,k,r) and I want to plot its values as different surfaces at constant N. So I tried to plot this matrix in this way:
col=hsv(N);
figure
hold on
for f=1:N
surf(vector_1,vector_2,EP(f,:,:),'Color',col(f,:,:));
legendInfo{f} = [num2str(Temp(f)-273.15) ' °C'];
end
legend(legendInfo)
but it doesn't work. It seems I can only plot surfaces at constant r! So now I want to try to plot a new matrix in the form (k,r,N).
How can I change the dimension of matrix EP(N,k,r) (and so its values inside) in this form: EP_1(k,r,N)?
6 件のコメント
the cyclist
2019 年 11 月 2 日
When you say, "it doesn't work", what do you mean, specifically? Do you mean that the code runs, but gives an unexpected result, or that the code does not run, and gives an error? If that latter, please post the complete error message.
回答 (1 件)
the cyclist
2019 年 11 月 2 日
I think what you want is to use
permute(EP(f,:,:),[2 3 1])
as the input, instead of just EP(f,:,:), so that you have a 2-d matrix, rather than a 3-d (in which the first dimension has length 1).
6 件のコメント
the cyclist
2019 年 11 月 2 日
The surf command takes a fourth argument, for the color. You could write your loop in a way that uses a different color for each loop iteration.
参考
カテゴリ
Help Center および File Exchange で Surface and Mesh Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!