構造体同士の計算

33 visualizaciones (últimos 30 días)
yuuya suzuki
yuuya suzuki el 19 de Jul. de 2019
Comentada: yuuya suzuki el 22 de Jul. de 2019
構造体、同士を簡単に加算、減算したいと思っています。
たとえば以下のような処理です
X.J1=20;
X.J2=20;
X.J3=20;
Y.J1=24;
Y.J2=10;
Y.J3=10;
Z=X-Y;  ←これがしたいができない
単純にフィールドごとに計算すればできるのはわかるのですが
フィールドが増えると面倒なので簡単な方法があれば教えてください
  1 comentario
yuuya suzuki
yuuya suzuki el 22 de Jul. de 2019
Thank you,

Iniciar sesión para comentar.

Respuesta aceptada

Kenta
Kenta el 21 de Jul. de 2019
x=struct2table(X);
y=struct2table(Y);
C=x{1,:}-y{1,:}
他の回答者さまのやり方のほうが、汎用的で、いろいろなものに使えて優れているとは思いますが、
少なくとも、今回の計算では、このコードでも同様の結果が得られました。簡単な演算のみならこのような方法でも良いかもしれません。
  3 comentarios
Kenta
Kenta el 21 de Jul. de 2019
certainly, seems better
yuuya suzuki
yuuya suzuki el 22 de Jul. de 2019
Thank you, everyone. It was helpful.

Iniciar sesión para comentar.

Más respuestas (1)

Yoshio
Yoshio el 19 de Jul. de 2019
こんな方法ではどうでしょうか。
X.J1=20;
X.J2=20;
X.J3=20;
Y.J1=24;
Y.J2=10;
Y.J3=10;
Z = MySub(X,Y)
function z = MySub(x,y)
fields = fieldnames(x);
n = length(fields);
z = x;
for i = 1:n
fld_name = fields{i};
z.(fld_name) = x.(fld_name)-y.(fld_name);
end
end
  2 comentarios
yuuya suzuki
yuuya suzuki el 22 de Jul. de 2019
ご回答ありがとうございます
やってみたのですが以下のエラーが起こってしまいます。
'struct' 型の入力引数の演算子 '-' が未定義です。
エラー: DivStructures (line 24)
OutPut.(fld_name) = x.(fld_name)-y.(fld_name);
yuuya suzuki
yuuya suzuki el 22 de Jul. de 2019
すみません解決しました

Iniciar sesión para comentar.

Categorías

Más información sobre 起動と終了 en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!