Combining multiple matrices into a single vector
显示 更早的评论
Hi there,
have some matrices that I would like to combine into a single vector. For example:
T1 = [2 3;
4 2]
T2 = [1 7;
9 4]
T3 = [5 5;
1 4]
I do not want to add them together like it does here:
T = [T1 T2 T3]
Rather I want to store them is such a way that I can index them in a loop
How can I accomplish this?
Many thanks
采纳的回答
更多回答(1 个)
If I am understanding the question correctly, here's one way to store them as a single vector (T_vec).
It requires storing the inputs in a cell array rather than separate matrices.
Let me know if this solves your question!
T{1,1} = T1;
T{2,1} = T2;
T{3,1} = T3;
T_vec = [];
for i = 1:length(T)
temp = T{i,1};
sz_temp = size(temp);
rows = sz_temp(1,1);
col = sz_temp(1,2);
for j = 1:rows
for p = 1:col
T_vec = [T_vec temp(j, p)];
end
end
end
1 个评论
@Katy: That can be simplified a bit:
T1 = [2 3;
4 2];
T2 = [1 7;
9 4];
T3 = [5 5;
1 4];
T = {T1;T2;T3};
for ii = 1:numel(T)
T{ii} = reshape(T{ii}.',1,[]);
end
T_vec = [T{:}]
Or, to simplify even further:
T = {T1;T2;T3};
T_vec = reshape(vertcat(T{:}).',1,[])
类别
在 帮助中心 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!