MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Light on 6 Jun 2013

How can i find a row which including only -1. In that A matrix how can i write a code

A=[-1,-1,0,0,0;0,0,0,-1,0;0,1,-1,0,-1;0,0,1,0,0;1,0,0,1,1]

*No products are associated with this question.*

Answer by Ravi Jhou on 7 Jun 2013

Accepted answer

You could try

blnA = logical( A == -1 ); blnOut = find( sum( blnA' ) == 1 );

variable 'blnA' finds the elements of matrix A, which are equal to -1.

The output of blnA is

blnA =

1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0

if there is just one '-1', the summary for each row of logical matrix blnA will be '1'.

And because the command 'sum' sums the elements of column.

So need to do a transpose.

The output of blnOut

blnOut =

2

A ha, row 2. Got it.

Show 1 older comment

Light on 7 Jun 2013

Sorry bro!

A=[-1,1,1;0,-1,0;0,0,-1;1,0,0];

In that matrix

blnOut =

1 2 3

I have to find row which include only one -1 or other element in row must be 0 not 1. In that matrix including 1 is found too. Please look at that again please

Ravi Jhou on 7 Jun 2013

You confused me.

Let me describe what you want.

e.g.

A = [-1 1 1 ; 0 -1 0 ; 0 0 -1 ; 1 0 0];

you want to find row 1, 2 ,and 3, which are included at least one '-1'.

or, you want to find row 2 and 3, which are included only one non-zero element '-1'.

You have to describe your question clearly, so I could answer you exactly.

Answer by Roger Stafford on 6 Jun 2013

I am guessing that you mean, how can you find those rows each of which includes at least one -1. Is that what you mean? If so, do this:

f = find(any(A==-1,2));

## 0 Comments