0

forループ内の行列からテーブルを作成しようとしています。

私が抱えている問題は、ループが進行するたびに新しい行を追加する行のラベルを作成することです。コードは最初のループで機能し、RLABELは2番目のループでそれ自体を更新しますが、マトリックスを印刷すると、行ラベルが不足していると表示されます。

毎回すべて手動で入力しなくても、RLABELから2行のラベルがあることをMATLABが読み取る方法があるかどうか疑問に思っていました。

以下は私のコードのコピーです

d = 2;           
kij = [1,2];       
uMatrix = zeros(1:2);    
for j=1:d        
     RLABEL(j,:) = ['Row','',int2str(j)]   %Creates Row string that updates itself each loop
     Px = rand                          
     var = (5/12)*d*sum(kij)             
     lam = 1/sqrt(var)                  
     u(j) = ((log(1-Px))/-lam)+kij(1,j)    
     uMatrix(j,1) = j;  
     uMatrix(j,2) = u(j)
     printmat(uMatrix,'Results',RLABEL,'SECTION u' )    
end
4

1 に答える 1

1

行ラベルは、スペースで区切られた単一の文字列である必要があります。さらに、の行printmatはループの外側に配置する必要があることに注意してください。

d = 2;
kij = [1,2];
uMatrix = zeros(1:2);

RLABEL=[];
for j=1:d

    RLABEL= [RLABEL 'Row','',int2str(j) ' '];   %Creates Row string that updates itself each loop

    Px = rand
    var = (5/12)*d*sum(kij)
    lam = 1/sqrt(var)
    u(j) = ((log(1-Px))/-lam)+kij(1,j)

    uMatrix(j,1) = j;

    uMatrix(j,2) = u(j)
end

printmat(uMatrix,'Results',RLABEL,'SECTION u' )

これにより、

Results = 
                   SECTION            u
         Row1      1.00000      3.21609
         Row2      2.00000      2.22374
于 2013-03-15T11:15:55.940 に答える