1

各サブマトリックスまたはセル配列から最後の行を収集したいと考えています。

  • マトリックス名 A に 17 x 20 のセルがあります。

  • 各サブマトリックスの行数は異なりますが、列数は同じです (合計 7 列、すべて)

  • 各サブマトリックスの最後の行のみで構成されるファイルを生成しようとしました。私のターゲットファイルのfromは

         M = [column1 column2 column3 column4 column5 column6 column7] 
         % made up of last rows of each submatrices, unknown number of lines, 7 columns
    
  • だから私は試しました

         for x_cc = 1:20
             for y_cc = 1:17
                  M = A{x_cc, y_cc}(end,:);
             end
         end
    
  • しかし、それは機能していません.Subscript indexs must be either real positive integers or logicals.というエラーが発生します。

  • 最初にサイズを定義する必要がありますか? どのような操作を行う必要がありますか? またはどのコマンドが便利ですか? cellfun を試してみましたが、ここでどのように使用できるかわかりません。

  • この状況を解決するには助けが必要です。ありがとう~!

4

1 に答える 1

2

x_ccまず、とを切り替えたようですy_cc。あなたのマトリックスは17 x 20x_ccなので、行は17にy_ccなり、20になります.

ただし、取得しているエラーは、おそらくend. このエラーの例:

a = [];

a(end)
??? Subscript indices must either be real positive integers or logicals.

興味があれば、forループを回避する方法は次のようになります。

B = cellfun(@(x) x(end,:), A, 'UniformOutput', 0);  
M = cell2mat(B(:));

これは、A の各行列から最後の行を取得し、それらを垂直に積み重ねて配列に変換します。

于 2012-11-06T03:28:08.603 に答える