replace the elements of a vector with an element sequence
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Andrei Bobrov
2014-3-5
编辑:Andrei Bobrov
2014-3-5
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,:);
更多回答(1 个)
Jos (10584)
2014-3-5
% 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,:)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!