文字列と数字の組み合わせをfor文でループさせる

조회 수: 43 (최근 30일)
H.K
H.K 2023년 3월 2일
댓글: H.K 2023년 3월 2일
matlab初心者です。初歩中の初歩の質問で申し訳ございません。
for文で変数の繰り返しを行いたいのですが、うまく行きません。
例えば、下記のx1とある変数だけをx1(:,j)、x2(:,j)、x3(:,j)・・・というように
ループさせるにはどうすれば良いでしょうか。ご回答の程宜しくお願い致します。
例)K = x1(:,j);

채택된 답변

Hernia Baby
Hernia Baby 2023년 3월 2일
eval関数を使えばいけますがめちゃくちゃお勧めしません。
一応やり方置いときます。
A = rand(36);
for jj = 1:width(A)
s = sprintf('x%i = A(:,%i);',jj,jj);
eval(s)
end
中身確認します
whos
Name Size Bytes Class Attributes A 36x36 10368 double cmdout 1x33 66 char jj 1x1 8 double s 1x14 28 char x1 36x1 288 double x10 36x1 288 double x11 36x1 288 double x12 36x1 288 double x13 36x1 288 double x14 36x1 288 double x15 36x1 288 double x16 36x1 288 double x17 36x1 288 double x18 36x1 288 double x19 36x1 288 double x2 36x1 288 double x20 36x1 288 double x21 36x1 288 double x22 36x1 288 double x23 36x1 288 double x24 36x1 288 double x25 36x1 288 double x26 36x1 288 double x27 36x1 288 double x28 36x1 288 double x29 36x1 288 double x3 36x1 288 double x30 36x1 288 double x31 36x1 288 double x32 36x1 288 double x33 36x1 288 double x34 36x1 288 double x35 36x1 288 double x36 36x1 288 double x4 36x1 288 double x5 36x1 288 double x6 36x1 288 double x7 36x1 288 double x8 36x1 288 double x9 36x1 288 double
------
代わりにお勧めするのはcellです
for jj = 1:width(A)
C{jj} = A(:,jj);
end
C
C = 1×36 cell array
{36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double} {36×1 double}
2列目を取り出してみましょう
C{2}
ans = 36×1
0.1164 0.4850 0.7365 0.4477 0.5623 0.6490 0.1355 0.8852 0.0212 0.8059
  댓글 수: 1
H.K
H.K 2023년 3월 2일
大変参考になりました。有難う御座います。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB 入門에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!