How to make a matrix mirror another?

4 次查看(过去 30 天)
How do I do this?
X=[4 7 1 0;
3 0 6 8]
Y=[32 6 4 21;
77 89 0 2]
X(X==0)=a;
after the alteration:
X=[4 7 1 a;
3 a 6 8]
Y=[ 32 6 4 a;
77 a 0 2];
  4 个评论
Hugo Matias
Hugo Matias 2018-12-1
I can't do it that way.
I can't do manual alterations on Y.
Y has to change exactly how X changes, automatically

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2018-12-1
Try this:
a = 42;
X=[4 7 1 0;
3 0 6 8]
Y=[32 6 4 21;
77 89 0 2]
Idx = X==0
X(Idx) = a
Y(Idx) = a % Use The Same Index On Both Matrices,
  4 个评论
Hugo Matias
Hugo Matias 2018-12-1
By the way, do you know how to do this one?
(sort the matrix)
before:
a=[3 9 5 7;
3 0 1 2;
11 2 0 9];
after:
a=[11 9 9 7;
5 3 3 2;
2 1 0 0;]
Star Strider
Star Strider 2018-12-2
Yes!
a=[ 3 9 5 7;
3 0 1 2;
11 2 0 9];
a_after = reshape(sort(a(:),'descend'), 4, [])'
a_after =
11 9 9 7
5 3 3 2
2 1 0 0
My apologies for the delay. I didn’t see your comment before.

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by