Symbolic math toolboxの配列要素の抽出

7 ビュー (過去 30 日間)
交感神経優位なあかべぇ
交感神経優位なあかべぇ 2024 年 4 月 23 日
下記コードのように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); %どのように書けばよいのか?

採用された回答

交感神経優位なあかべぇ
交感神経優位なあかべぇ 2025 年 7 月 2 日
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 Center および File ExchangeSymbolic Math Toolbox についてさらに検索

製品


リリース

R2024a

Community Treasure Hunt

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

Start Hunting!