将提取的行分配给另一个变量

时间:2015-01-01 10:06:36

标签: matlab

我有一个大小为30 * 200的矩阵。我想提取每一行并将其分配给另一个变量,以便我可以访问每一行。我希望它显示为p(1)=a(1,:),依此类推。我想提取所有30行。我不知道如何在MATLAB中执行此操作,因为它生成错误

  

两个向量必须具有相同的长度。

2 个答案:

答案 0 :(得分:0)

尝试

p = a(1,:); %// p is now 1-by-200 row vector

循环

for ii=1:size(a,1)
    p = a(ii,:); %// get the ii-th row
    %// manipulate the row here...
end

答案 1 :(得分:0)

我在编写p(r)而不是a(r,:)之类的内容时看不到直接的优势,这似乎也不可行。但是,您可以在单元格数组中存储矢量。可以通过大括号访问它们,以便p{r}可以访问。

a = rand(30, 200); %// the 30x200 matrix a
p = cell(size(a,1), 1); %// initiate the cell of needed size

%// iterate over rows r
for r = 1:size(a,1)
    p{r} = a(r,:); %// now p{r} == a(r,:)
end