a1からa36の1000行のdoubleタイプの配列があります。
forループで1から36を回して縦に並んだ配列同士を横に連結させ、
最終的に1000×36のdouble型の配列を作りたいと思っています。
catやhorzcatを使って試してみたのですがうまくいかず、
どなたかわかる方教えていただければ幸いです。
どうぞよろしくお願いします。
「a1からa36の1000行のdoubleタイプの配列」はそもそもどうやって用意したんですか?
こんな感じ?
a1 = ones(5, 1) * 0.1
a2 = ones(5, 1) * 0.2
a3 = ones(5, 1) * 0.3
aa = [a1 a2 a3]
ozwk様
ご返信・ご質問ありがとうございます。
「a1からa36の1000行のdoubleタイプの配列」は、元々あった長い配列のデータを1000行ごとに切り取って作りました。
私の昨日の質問の仕方がかなりわかりづらかったと思いますので追記すると、
a1=1000行、a2=1000行、...a36が=1000行という感じなのですが、
a=[a1 a2 ...a36]と配列同士を横方向に繋げると少し長いこと・今後もっと多くの配列同士を連結させる時に困ることから、このようなご質問させていただきました。
どうぞよろしくお願い致します。
jbpb0様
ご返信・ご回答ありがとうございます。
はい、配列の大枠としてはそのような感じになります。
(aaでまとめている配列の数が増えた場合に、forで回したいと思っております。)
「元々あった長い配列のデータ」とやらを加工すればいいと思います。
ozwk様
ご返信ありがとうございます。
「元々あった長い配列データ」を切り出す際に、切り出しはじめと切り出し終わりをそれぞれ指定して切り出していることから、直接の加工(連結)が難しいか?と思いご質問させていただいた次第でした。
追記の情報が多くて申し訳ありませんが、もしa=[a1 a2 ...a36]の番号部分をforループで回して多数の配列を連結させる方法をご存じでしたら、教えていただけましたら幸いです。
> a=[a1 a2 ...a36]の番号部分をforループで回して多数の配列を連結させる方法
a1 = ones(10, 1) * 0.1;
a2 = ones(10, 1) * 0.2;
a3 = ones(10, 1) * 0.3;
a4 = ones(10, 1) * 0.4;
a5 = ones(10, 1) * 0.5;
aa = [];
for num = 1:5
%disp(num)
str = ['aa = [aa a', num2str(num), '];'];
disp(str)
eval(str)
end
disp(aa)
みたいな感じ?
参考
https://jp.mathworks.com/matlabcentral/answers/723833-for
jbpb0様
できました!
大変わかりやすくありがとうございます!
jbpb0様 ozwk様
今回はご回答くださりありがとうございました。
初歩的な質問になってしまっていたこと、ご回答いただいてからわかったのですが、大変勉強になりました。
貴重なお時間くださり感謝しております。
jbpb0様
追記ありがとうございます。
こちらの方でもできました。
回答2件
あなたの回答
tips
プレビュー