行ベクトルの要素の一括代入
조회 수: 24 (최근 30일)
이전 댓글 표시
以下を実行するとエラーになります。
B= [1;2];
[XX; YY] = B;
下の様にそれぞれの要素毎に代入すればできることは理解しています。
XX = B(1);
YY=B(2);
正確にはBという変数を作らず、行ベクトルとなっている演算結果の要素を違う変数に入れたいと
考えています。
例えば以下の様なイメージのことを実現したいです。
[XX; YY] = A*[1;2;1];
一旦配列に格納せず、同じ演算を繰り返さない良い方法をご教示いただけないでしょうか?
댓글 수: 0
채택된 답변
交感神経優位なあかべぇ
2023년 7월 14일
おそらくそのような方法はないと思います。
一度演算結果を代入する必要があるため、用途にあうか分からないですが、下記のevalを使用した方法はどうでしょうか?
varNames = {'AA'; 'BB'; 'CC'; 'EE'};
A= 5 * [1;2;3;4];
for i = 1 : length(A)
eval([varNames{i}, '= A(', num2str(i), ')'])
end
댓글 수: 2
交感神経優位なあかべぇ
2023년 7월 14일
もしくは、そのような機能を持つ関数を作成する方法もあります。
[XX, YY, ZZ] = myassign(5*[1;2;3])
function varargout = myassign(A)
varargout = num2cell(A);
end
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!