是否可以在Matlab上创建具有不同#rows的行的矩阵?

时间:2014-12-01 16:41:29

标签: matlab

我想制作一个矩阵,或者另一种变量作为行。问题是,第一行可以有10个数字(列),第二行只有3个,第三个5,依此类推...... 那可能吗?怎么样?

编辑:我需要通过矩阵,然后存储数字。它是一个m乘2的矩阵。我用for循环来完成它。像这样:

rows = size (mtx, 1);
for i = 1 : rows
    var = m (i, :);
    if m(2) is in A{something}
        if m(3) is in A{something}
            continue (ignore)
        else
            store m(3) in A{something}
        end
    else
        if m(3) is in A{something}
            store m(2) in A{something}
        else store both m(2) and m(3) in A{Newsomething}
        end
    end
end

2 个答案:

答案 0 :(得分:1)

不是矩阵,而是cell array,是:

A{1} = [1 2 3 4 5 6 7 8 9 10];
A{2} = [1 2 3];
A{3} = [1 2 3 4 5];

>> A
A =
{
  [1,1] =

      1    2    3    4    5    6    7    8    9   10

  [1,2] =

     1   2   3

  [1,3] =

     1   2   3   4   5

}

答案 1 :(得分:0)

如果你知道你可能拥有的元素的绝对最大值,你可以使用你的数字填充一些元素,用NaN填充所有其他元素。之后,您可以将第一行中的所有非纳米元素视为A(1, ~isnan(A(1,:)))

如果你需要处理所有行,你可以写:

for i = 1 : size(A,1)
    row_to_process = A(i, ~isnan(A(i,:)))
    do_some_stuff(row_to_process)
end