Stacking on a multi-variable function
8 ビュー (過去 30 日間)
古いコメントを表示
So, I am trying to build a plot from a multi-variable function. I plan to hold 2 variables constant while indexing the 3rd variable, but then for each index of the 3rd variable, i hold that 3rd variable constant and index the 2nd, so on and so forth for the first variable.
For example,
f(x,y,z) = x + y + z
f = x(1) + y(1) + z(1:10)
then, for each z index...
f = x(1) + y(1:10) + z(1)
and then...
f = x(1:10) + y(1) + z(1)
so essentially for this example, I would have 1000 data points. My idea was to do nested for loops, however I don't think this is the right approach.
2 件のコメント
the cyclist
2019 年 7 月 3 日
I'm not quite sure what the inputs and outputs should be.
Is the input only the function itself? But you say you "have 1000 data points".
What is the output? A single plot? Three plots, one for each variable? Or do you need a plot for
f = x(1:10) + y(1) + z(1)
and
f = x(1:10) + y(2) + z(1)
and so on such that you have a thousand plots in total?
I, for one, need a lot of clarification before I could provide any help.
回答 (1 件)
Walter Roberson
2019 年 7 月 3 日
[X, Y, Z] = ndgrid(x, y, z);
F = X + Y + Z;
F will now be numel(x) by numel(y) by numel(z) . You can extract parts of it such as
squeeze(F(7,:,2))
You might also want to look at slice() or isosurface()
5 件のコメント
Walter Roberson
2019 年 7 月 3 日
You can extract parts of it such as
squeeze(F(2,:,7))
You might also want to look at slice() or isosurface()
参考
カテゴリ
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!