我有一个大小为30 * 200的矩阵。我想提取每一行并将其分配给另一个变量,以便我可以访问每一行。我希望它显示为p(1)=a(1,:)
,依此类推。我想提取所有30行。我不知道如何在MATLAB中执行此操作,因为它生成错误
两个向量必须具有相同的长度。
答案 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