indexing

조회 수: 3 (최근 30일)
deji
deji 2011년 11월 15일
hi,
how do i replace all the members of an array with with anoda set of arrays.. for example
a = [ q1 q2 q3 q4]
b = [1 2 3 4 2 4 3 1 2 1 3 4 3 2 1 2 3 4 1 3 2 4]
how do i replace the members of a with where q1=1, q2=2, q3=3 and q4=4 pls i will appreciate any help i can get for this.
thanks in advance
  댓글 수: 4
deji
deji 2011년 11월 15일
the elements in a are to replace the elements in b
Dr. Seis
Dr. Seis 2011년 11월 15일
Ah, then use my last suggestion if you are using the elements in b for indexing.

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

채택된 답변

Dr. Seis
Dr. Seis 2011년 11월 15일
Are you trying to create a row vector with all the different combinations of q1, q2, q3, and q4?
If so:
q1=11; q2=22; q3=33; q4=44;
a = [q1 q2 q3 q4];
b = reshape(a(perms(1:length(a)))',[1,numel(perms(1:length(a)))]);
If you would rather have a matrix of the different combinations, then:
b = a(perms(1:length(a)));
Or, if the order of b is really as you describe above, then use b as indices to a:
b = [1 2 3 4 2 4 3 1 2 1 3 4 3 2 1 2 3 4 1 3 2 4];
c = a(b);
  댓글 수: 2
bym
bym 2011년 11월 15일
yes but the OP said q1 =1...etc, in which case
a(b) == b
I don't get the question
Dr. Seis
Dr. Seis 2011년 11월 15일
Yeah, I changed it just to demonstrate that the elements in a do not necessarily need to be 1:4, but the indexing needs to be 1:length(a) in order to do any rearranging they may want to do. I, too, do not understand fully... just a few guesses.

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

추가 답변 (0개)

카테고리

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