replace the elements of a vector with an element sequence
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
pavlos
am 5 Mär. 2014
Kommentiert: pavlos
am 6 Mär. 2014
Hello,
Consider a 100x1 matrix with random values from 1 to 3.
How can replace all the values with an element sequence of 4 elements, such as:
all 1 with 0100
all 2 with 1001
all 3 with 0001
Thank you.
Best,
Pavlos
0 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 5 Mär. 2014
Bearbeitet: Andrei Bobrov
am 5 Mär. 2014
A = [0 1 0 0;1 0 0 1;0 0 0 1];
B = randi(3,100,1);
out = A(B,:);
for negative values:
B2 = [-1 -0.5 -0.25];
[l0,ii] = ismember(B,B2);
out = nan(numel(B),size(A,2));
idx = ii(l0);
out(l0,:) = A(idx,:);
2 Kommentare
Weitere Antworten (1)
Jos (10584)
am 5 Mär. 2014
% values V(k) in B should be mapped to row A(k,:)
A = [0 1 0 0;1 0 0 1;0 0 0 1]
V = [-1 -0.5 -0.25]
B = [-1 -0.5 -1 -0.25 -1 -0.25 -0.5 -1 -1]
[~,k] = ismember(B,V)
out = A(k,:)
Siehe auch
Kategorien
Mehr zu Logical 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!