How we can do sub-plot in one graph ?

1 回表示 (過去 30 日間)
salim
salim 2025 年 4 月 24 日
回答済み: Sam Chak 2025 年 4 月 24 日
I want to plot a function using subplots in MATLAB. However, the function is quite long, and I need to add element-wise operators like .^, ./, and .* throughout the expression. Because of the function's length, it's difficult to manage and modify it directly. Also, due to word limits here, I can't paste the entire function. How can I simplify or structure the code to make it easier to handle and plot? Also y=0
F=real(-0.4227272727e1 * (0.1312253516e5 * exp(0.5351775227e2 * t - 0.5570000000e1 * x - 0.13708e1 * y - 0.2046600000e2) + 0.4343009244e4 * exp(0.6643795743e2 * t - 0.6670000000e1 * x - 0.6854000000e0 * y - 0.3715800000e2) + 0.620450180e5 * exp(0.3998523656e2 * t - 0.408e1 * x - 0.6854e0 * y - 0.192080e2) + 0.5409146678e5 * exp(0.1353251570e2 * t - 0.1490000000e1 * x - 0.6854000000e0 * y - 0.1258000000e1) + 0.1634390200e6 * exp(0.2645272086e2 * t - 0.2590000000e1 * x - 0.1795000000e2)) / (-0.1253256920e2 * exp(0.3998523656e2 * t - 0.408e1 * x - 0.6854e0 * y - 0.192080e2) - 0.1560910892e3 * exp(0.1353251570e2 * t - 0.1490000000e1 * x - 0.6854000000e0 * y - 0.1258000000e1) - 0.1560910892e3 * exp(0.2645272086e2 * t - 0.2590000000e1 * x - 0.1795000000e2) - 0.1560910892e3) ^ 2);

採用された回答

Star Strider
Star Strider 2025 年 4 月 24 日
With respect to adding element-wise operatioons to your code, use the vectorize function. The note says ‘(Not recommended)’ however it is extremely useful in some situations. I definitely do recommend it for those!

その他の回答 (1 件)

Sam Chak
Sam Chak 2025 年 4 月 24 日
There are three variables in the function F(t, x, y). I am unsure how you would like to plot these multivariate graphs. However, you can use subplot() to create a windowed layout within a single figure.
%% declare symbolic variables
syms t x y
%% the multi-variate function, F
F = @(t, x, y) real(-0.4227272727e1 * (0.1312253516e5 * exp(0.5351775227e2 * t - 0.5570000000e1 * x - 0.13708e1 * y - 0.2046600000e2) + 0.4343009244e4 * exp(0.6643795743e2 * t - 0.6670000000e1 * x - 0.6854000000e0 * y - 0.3715800000e2) + 0.620450180e5 * exp(0.3998523656e2 * t - 0.408e1 * x - 0.6854e0 * y - 0.192080e2) + 0.5409146678e5 * exp(0.1353251570e2 * t - 0.1490000000e1 * x - 0.6854000000e0 * y - 0.1258000000e1) + 0.1634390200e6 * exp(0.2645272086e2 * t - 0.2590000000e1 * x - 0.1795000000e2)) / (-0.1253256920e2 * exp(0.3998523656e2 * t - 0.408e1 * x - 0.6854e0 * y - 0.192080e2) - 0.1560910892e3 * exp(0.1353251570e2 * t - 0.1490000000e1 * x - 0.6854000000e0 * y - 0.1258000000e1) - 0.1560910892e3 * exp(0.2645272086e2 * t - 0.2590000000e1 * x - 0.1795000000e2) - 0.1560910892e3) ^ 2);
%% making plots
figure
subplot(311)
fplot(F(t, 1, 1), [ -2, 4]), grid on
xlabel('t'), ylabel('F'), title('F(t)')
subplot(312)
fplot(F(1, x, 1), [-10, 20]), grid on
xlabel('x'), ylabel('F'), title('F(x)')
subplot(313)
fplot(F(1, 1, y), [-10, 40]), grid on
xlabel('y'), ylabel('F'), title('F(y)')

カテゴリ

Help Center および File ExchangeAxis Labels についてさらに検索

タグ

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by