変数内の行列を取り出​すためのfor構文を​作成したい。

26 visualizzazioni (ultimi 30 giorni)
HF
HF il 25 Feb 2022
Commentato: HF il 1 Mar 2022
aとbという行列の変数があります。この変数の1列目と2列目を取り出すfor構文を作成したいです。
nameにlistの文字列を入れても、変数として認識しないため何か方法はありますか?
list = ['a';'b']
num_list = size(list);
for i=1:1:num_list(1)
name = list(i)
t = name(:,1);
s = name(:,2);
end
  2 Commenti
Hernia Baby
Hernia Baby il 25 Feb 2022
これですとtとsが更新されます。情報は保持していなくてもいいのでしょうか?
HF
HF il 28 Feb 2022
これをベースにtとsを別処理させるので、問題ございません。

Accedi per commentare.

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 25 Feb 2022
a = ones(1,2);
b = zeros(1,2);
list = ['a';'b'];
num_list = size(list);
for i = 1:1:num_list(1)
name = list(i);
eval(['t = ', name, '(:,1)']);
eval(['s = ', name, '(:,2)']);
end
t = 1
s = 1
t = 0
s = 0
  3 Commenti
Atsushi Ueno
Atsushi Ueno il 28 Feb 2022
そのような場合には変数名のリストを行列からセル配列に変更します。セル配列は異なる型のデータを格納できる配列です。
aa = ones(1,2);
bbb = zeros(1,2);
list = {'aa';'bbb'}; % 角括弧[]を波括弧{}に変更した
num_list = size(list);
for i = 1:1:num_list(1)
name = list{i}; % 丸括弧()を波括弧{}に変更した
eval(['t = ', name, '(:,1)']);
eval(['s = ', name, '(:,2)']);
end
t = 1
s = 1
t = 0
s = 0
HF
HF il 1 Mar 2022
ありがとうございます。
とても参考になりました。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!