Clear Filters
Clear Filters

Combine multiple vectors into specific locations of one matrix

3 views (last 30 days)
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 Comment
Yu Takahashi
Yu Takahashi on 7 Feb 2021
Edited: Yu Takahashi on 7 Feb 2021
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

Sign in to comment.

Accepted Answer

David Hill
David Hill on 7 Feb 2021
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

More Answers (0)

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!