compare and combine matrices

Hi
I have 2 matrices, let's say:
A=[1 2 3; 1 2 3; 1 2 3]
B=[1 2 3; 2 1 3; 3 2 1]
Now i want a matrix C that contains the value in A&B if A = B, and the subtract (A-B)*10 when A and B are different.
I created a matrix
D=A-B
And then I used a for loop with an if command
for t=1:length(A) for l=1:length(A) if D(l,t) == 0 C(l,t)=A(l,t) else C(l,t)=D(l,t)*10 end end end
This works but it takes very long as i have huge matrices; Is there a possibility to avoid the for loop?
Thank you very much in advance
Nina

Réponses (1)

Andrei Bobrov
Andrei Bobrov le 3 Fév 2016
Modifié(e) : Andrei Bobrov le 3 Fév 2016

0 votes

C = A;
t = A~=B;
C(t) = 10*(A(t) - B(t));

Cette question est clôturée.

Clôturé :

le 20 Août 2021

Community Treasure Hunt

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

Start Hunting!

Translated by