Symbolic math toolboxの配列要素の抽出

8 次查看(过去 30 天)
下記コードのように2×2の配列に対して、2行目の最大値である列の抽出を、Symbolic Math Toolboxの計算式で表現したいです。
そのような方法はあるのでしょうか? よろしくお願いします。
% MATLAB コードでの例
u1 = 1;
u2 = 2;
u3 = 3;
u4 = 4;
m = [u1,u2;u3,u4]
m = 2x2
1 2 3 4
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
y = ExtractRow2Max(m) % 2行目が最大値である列を抽出
y = 2x1
2 4
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
function y = ExtractRow2Max(u)
[~, max_i] = max(u(2,:));
y = u(:,max_i);
end
↓ Symbolic Math Toolboxでの実装例
% Symbolic Math Toolboxで上記コードの計算を表現したい。
syms u1 u2 u3 u4
m = [u1, u2; u3, u4]
m = 
% y = ExtractRow2Max(m); %どのように書けばよいのか?

采纳的回答

交感神経優位なあかべぇ
piecewiseを使用すれば条件ごとの式を表現可能です。
syms u1 u2 u3 u4
m = [u1, u2; u3, u4]
m = 
y = piecewise(m(2,1) > m(2,2), m(:,1), m(:,2)) % 2行目が大きい値の方の列を抽出の式
y = 
double(subs(y, m, [1,2;3,4])) % MATLAB コードでの例と同じ結果になることの確認
ans = 2×1
2 4
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!