我的问题很简单。我在结构中有相同大小的向量(我们称之为a.f
)。假设我们有8个结构(8< 1x1结构>),每个结构包含另一个结构b,其中有一个向量。我知道我可以这样做:
for i = 1:8
matrix(i,:) = a(i).f(1:5)
end
或
for i = 1:8
matrix{i} = a(i).f(1:5)
end
还有另一种方法可以将所有这些数组存储到矩阵中,而不需要for循环吗?
matrix = [a.f];
将它们全部存储为矢量。
答案 0 :(得分:2)
在reshape
之后使用[a.f]
怎么样?例如:
matrix =reshape([a.f],numel(a),[]);
答案 1 :(得分:2)
如果您的向量是行,则使用vertcat
;如果是列,则使用horzcat
。
示例:
>> a(1).f = 1:7;
>> a(2).f = 11:17;
>> matrix = vertcat(a.f)
matrix =
1 2 3 4 5 6 7
11 12 13 14 15 16 17
答案 2 :(得分:0)
怎么样
matrix = zeros(numel(a),numel(a(1).f));
matrix(:) = [a.f];