配列の垂直連結
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sample1=[1 2 3; 1 2 3; 1 2 3]
sample2=[2 2 3]
sample3=[6 2 3; 2 2 3]
・
・
・
sample(n)=[5 2 3; 2 1 3; 2 7 3]
のような配列名に規則性があり、配列がM行×3列の配列同士を垂直を方向に連結するにはどうしたらよいですか。
(配列数nは50くらいの設定で。)
0 Kommentare
Akzeptierte Antwort
OH
am 2 Mär. 2021
Bearbeitet: OH
am 2 Mär. 2021
配列結合したいけれど、配列名50個が入力となるのでお悩みということでしょうか。
eval()を使ってみてはどうでしょう。
変数resultへ代入するやり方が良くないですが、書いてみました。(配列のサイズがfor1回毎に変わるのは遅いので良くない)
n = 4;%データの数
result = [];%配列初期化
data1 = [1 2 3;1 2 3;1 2 3];
data2 = [2 2 3];
data3 = [6 2 3;2 2 3];
data4 = [5 2 3;2 1 3;2 7 3];
for i = 1:n
eval(sprintf('result = [result;data%d];',i));%result = [result;data(i)]を実行
end
Weitere Antworten (1)
Hernia Baby
am 2 Mär. 2021
あまりお勧めではないですが、eval関数を使ってください
clear
% 最初のデータ
sample1=[1 2 3; 1 2 3; 1 2 3];
sample2=[2 2 3];
sample3=[6 2 3; 2 2 3];
sample4=[5 2 3; 2 1 3; 2 7 3];
% ワークスペースの変数の数をカウント
l = length(who);
% 垂直に文字を連結
s = [];
for i = 1:l
eval(sprintf('s = vertcat(s,sample%i);',i));
end
% 確認
s
s =
1 2 3
1 2 3
1 2 3
2 2 3
6 2 3
2 2 3
5 2 3
2 1 3
2 7 3
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!