Combine multiple vectors into specific locations of one matrix

2 次查看(过去 30 天)
Dear members
In short, as indicated by the title, I was trying to combine 20 vectors into one new matrix i.e., 10 each generated by condition_A and condition_B using a for loop. Specifically, assigning all condition_As to the second column, and all condition_Bs to the third column of a new matrix.
for n = 1: 10
% a
condition_a = [ repmat(23,1,6) repmat(99,1,6) ];
condition_A = condition_a(randperm(length(condition_a)));%Vector a here %this is to randomize the order of the numbers
% b
condition_b = [111 112 127 123 211 218 221 222 311 312 321 333 ];
condition_B = condition_b(randperm(length(condition_b)));% Vector b here
% other irrelevant stuff down below
end
I apologize if this is a naive question, thanks in advance.
Please let me know if more information is needed.
  1 个评论
Yu Takahashi
Yu Takahashi 2021-2-7
编辑:Yu Takahashi 2021-2-7
In other words, I was trying to achieve something like this
For the new matrix :
First column : (empty)
Second column : 1st condition_A, 2nd condition_A, 3rd condition_A ... 10th condition_A
Third column : 1st condition_B, 2nd condition_B, 3rd condition_B ... 10th condition_B

请先登录,再进行评论。

采纳的回答

David Hill
David Hill 2021-2-7
You can't leave the first column empty. Why not put zeros in?
a=[6 6 6 6 6 6 99 99 99 99 99 99]';
b=[111 112 127 123 211 218 221 222 311 312 321 333 ]';
L=length(a);
m=zeros(10*L,3);
for k=1:10
m(L*(k-1)+1:k*L,2)=a(randperm(L));
m(L*(k-1)+1:k*L,3)=b(randperm(L));
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by