how can I append two or more matrices inside For Loop?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
JacobM
am 19 Sep. 2016
Kommentiert: Star Strider
am 20 Sep. 2016
In the following code; I transform decimal matrix to binary and I want to save all the representations in same matrix whcih simply append all matrices in one general matrix. Note that, number of columns is fixed, rows are only changing. but bbecause I am using for loop, the new representation replace the old one. How can I save all of them in the same matrix?
x=[5 -3 -1 -1 -1]; % decimal to binary representation
b = dec2bin(0:2^numel(x)-1)=='1';
y=[5 -1;5 -2];
r=size(y,1); % number of rows is more importnat
for n=1:r
z1 = b(b*x'==y(n,1),:); % binary represntation for column 1
z2 = b(b*x'==y(n,2),:); % binary represntation for column 2
end
the result I want for z1 is the reprsentation of 5 & 4:
z1=[1 0 0 0 0;1 0 0 0 1; 1 0 0 1 0; 1 0 1 0 0] but using the above code I just got represntation for last iteration only which is 4; z1=[1 0 0 0 1; 1 0 0 1 0; 1 0 1 0 0]
y matrix rows may change from 1 ---> 10 rows depends in the user and also the element values are changing, I have this part done!
So my only concern is how to save all representations in one matrix??
0 Kommentare
Akzeptierte Antwort
Star Strider
am 19 Sep. 2016
I am not certain what you want to do.
Experiment with this to get the result you want:
x=[5 -3 -1 -1 -1]; % decimal to binary representation
b = dec2bin(0:2^numel(x)-1)=='1';
y=[5 -1;5 -2];
r=size(y,1); % number of rows is more important
z1 = []; % Initialise ‘z1’
z2 = []; % Initialise ‘z2’
for n=1:r
z1 = [z1; b(b*x'==y(n,1),:)]; % binary represntation for column 1
z2 = [z2; b(b*x'==y(n,2),:)]; % binary represntation for column 2
end
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!