필터 지우기
필터 지우기

- swapping a matrix

조회 수: 1 (최근 30일)
Anusha
Anusha 2014년 4월 23일
댓글: Geoff Hayes 2014년 4월 24일
a =
1 3 5 6 7
2 3 2 3 2
5 6 7 8 7
b=
5 2 1 3 7
6 8 2 3 1
5 7 8 6 3
how to swap b to a.
ans=
1 3 5 6 7
2 3 2 3 2
5 6 7 8 7

채택된 답변

Andrew Newell
Andrew Newell 2014년 4월 24일
If I understand your latest comment, you begin by finding the unique numbers:
an = unique(a,'stable').'
bn = unique(b,'stable').'
an =
1 3 5 6 7 2 8
bn =
5 2 1 3 7 6 8
Now you take all the 5's in b and replace them by 1's, all the 2's by 3's, and so on, all at once (otherwise in a later step all the 1's will be changed back to 5's). You can do this by initializing a new matrix and putting all the numbers in it:
c = zeros(size(b));
for i=1:length(an)
idx = (b==bn(i));
c(idx) = an(i);
end
c
c =
1 5 7 8 6
2 3 5 8 7
1 6 3 2 8
This seems to be what you're saying, although the result is completely different from the answer you provided.

추가 답변 (1개)

Andrew Newell
Andrew Newell 2014년 4월 23일
I have two theories for what you mean:
b=a
just makes b equal to a. Or
z=b
b=a
a=z
exchanges the two matrices. I think you need to look at a Matlab tutorial or two.
  댓글 수: 8
Anusha
Anusha 2014년 4월 24일
I use following comments to take a valu an=unique(a,'stable'); bn=unique(b,'stable');
Now swap an and bn in b value. this is useful to get a?
Geoff Hayes
Geoff Hayes 2014년 4월 24일
Was there some sort of suggestion (or part of the problem description) that to do the swap you can use the unique values of a and b (retrieved via stable)?

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

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by