필터 지우기
필터 지우기

replace the elements of a vector with an element sequence

조회 수: 1 (최근 30일)
pavlos
pavlos 2014년 3월 5일
댓글: pavlos 2014년 3월 6일
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

채택된 답변

Andrei Bobrov
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,:);
  댓글 수: 2
pavlos
pavlos 2014년 3월 5일
Hello,
How can I do the same if the 100x1 matrix contains negative values.
For example, instead of 1, 2, 3 consider -1, -0.5, -0.25
Thank you.
Andrei Bobrov
Andrei Bobrov 2014년 3월 5일
Please see answer by Jos

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Jos (10584)
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 CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by