How do I make the element zero, if its adjacent column element is zero?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Taner Cokyasar
am 10 Jul. 2016
Bearbeitet: per isakson
am 12 Jul. 2016
Hello,
Assume, I have the following 9x2 matrix. When there is a zero in the second column, I want to make the first column's same row element zero too.
12 0
11 0
10 6
12 0
11 3
10 0
12 0
11 5
10 0
This will become like:
0 0
0 0
10 6
0 0
11 3
0 0
0 0
11 5
0 0
Thank you so much
0 Kommentare
Akzeptierte Antwort
per isakson
am 10 Jul. 2016
Bearbeitet: per isakson
am 10 Jul. 2016
Try
>> is_zero = A(:,2)==0;
>> A(is_zero,1)=0;
>> A
A =
0 0
0 0
10 6
0 0
11 3
0 0
0 0
11 5
0 0
Weitere Antworten (1)
Star Strider
am 10 Jul. 2016
That can actually be done in one line of code:
M = [12 0
11 0
10 6
12 0
11 3
10 0
12 0
11 5
10 0];
M(M(:,2) == 0,1) = 0
M =
0 0
0 0
10 6
0 0
11 3
0 0
0 0
11 5
0 0
3 Kommentare
per isakson
am 12 Jul. 2016
Bearbeitet: per isakson
am 12 Jul. 2016
Adding a question in a comment to an existing question with an accepted answer doesn't attract many viewers. I think it is better to open a new question.
I have problems understanding your "pseudo indexing".
"Y13 = 1 because Z13 = 1"   Here is a piece of elegant Matlab code. (Not sure it is relevant, though.)
>> A = zeros(3,4,2);
>> B = randi( [1,2], size(A) );
>> A(B==1)=1; % or A(B==1)=B(B==1);
>> B
B(:,:,1) =
2 2 1 2
1 1 1 2
2 2 2 1
B(:,:,2) =
2 1 1 2
1 1 2 1
1 2 1 2
>> A
A(:,:,1) =
0 0 1 0
1 1 1 0
0 0 0 1
A(:,:,2) =
0 1 1 0
1 1 0 1
1 0 1 0
>>
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!