Combine multiple vectors into specific locations of one matrix

2 Ansichten (letzte 30 Tage)
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 Kommentar
Yu Takahashi
Yu Takahashi am 7 Feb. 2021
Bearbeitet: Yu Takahashi am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

David Hill
David Hill am 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

Weitere Antworten (0)

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by