配列の垂直連結
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
OH
le 2 Mar 2021
Modifié(e) : OH
le 2 Mar 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
Plus de réponses (1)
Hernia Baby
le 2 Mar 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
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!