55538


MATLABで行列の計算を行うために、  
行数の小さい方に合わせるために行を削除しようとしています。  
バージョン： R2019a

具体的には以下のような出力を得たいです。  
しかしながら現在のプログラムでは出力が異なっており、修正方法がわかりません。

入力A,B、出力ans

[code]

    A =
    
         1     2     3     4     5     6     7
         8     9    10    11    12    13    14
    
    
    B =
    
         1     2     3     4     5     6     7
         8     9    10    11    12    13    14
        15    16    17    18    19    20    21
        22    23    24    25    26    27    28
    
    
    ans =
    
         0     0     0     0     0     0     0
         0     0     0     0     0     0     0
    
[/code]

現在のプログラム

[code]

    A = [1,2,3,4,5,6,7; 8,9,10,11,12,13,14]
    
    B = [1,2,3,4,5,6,7; 8,9,10,11,12,13,14; 15,16,17,18,19,20,21; 22,23,24,25,26,27,28]
    
    [Am, An] = size(A);
    [Bm, Bn] = size(B);
    
    if Am > Bm
       diff = Am - Bm;
       delete_point = Am - diff;
       A(delete_point) = [];
    elseif Am < Bm
        diff = Bm - Am; %2
        delete_point = Bm - diff;
        %delete_point以降の行を全て削除
        A(delete_point, :) = [];
    end
    
    ans = A-B    
    
[/code]

実行結果

[code]

    >> sample
    
    A =
    
         1     2     3     4     5     6     7
         8     9    10    11    12    13    14
    
    
    B =
    
         1     2     3     4     5     6     7
         8     9    10    11    12    13    14
        15    16    17    18    19    20    21
        22    23    24    25    26    27    28
    
    
    ans =
    
         0     0     0     0     0     0     0
        -7    -7    -7    -7    -7    -7    -7
       -14   -14   -14   -14   -14   -14   -14
       -21   -21   -21   -21   -21   -21   -21
    
[/code]


CC BY-SA 4.0
2019-06-05T02:25:06.910
55535
2019-06-05T03:00:10.767
2019-06-05T02:57:43.440
question
array matlab
MATLABで行列の計算を行うために行数の小さい方に合わせるために行を削除する方法について


行列の一部分だけ取り出せばいいので、こう書けます。

[code]

    [Am, An] = size(A);
    [Bm, Bn] = size(B);
    
    if Am > Bm
        A = A(1:Bm, :);
    elseif Am < Bm
        B = B(1:Am, :);
    end
    
[/code]


CC BY-SA 4.0
2019-06-05T03:00:10.767
55538
2019-06-05T03:00:10.767
3605
55535
answer