help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deleting equal rows/columns in matrix


From: GFotios
Subject: Re: Deleting equal rows/columns in matrix
Date: Wed, 20 Oct 2010 15:41:35 +0200


On Oct 20, 2010, at 3:27 PM, AlbFrigerio wrote:


Hello world, I got a problem I'm trying to solve on my own, but I really don't know if I would solve it, hence I'm asking "in advance" your help.

The question is quite simple : is there a (simple) way to delete in a matrix
the already existing rows or columns?

I might use for loops asking isequal(A(i,:),A(j,:) \forall i,j , but I hope
there is a nicer way. I tried to use the outer product with function
@isequal , but I reach results I don't understand :(
Just as an information, I don't have a real matrix, but an integer one whose lines are combination of {0,1,9} . If I got only {0,1} values I would have used binary transformation, but I got three elements and, by the way, I'm
looking for the solution of the general problem.

Thank you so much, in the rest of the day I'll try to solve it, if I don't
reach any solution ... I hope someone of yours do !!

  Alberto
--
View this message in context: 
http://octave.1599824.n4.nabble.com/Deleting-equal-rows-columns-in-matrix-tp3003845p3003845.html
Sent from the Octave - General mailing list archive at Nabble.com.
_______________________________________________
Help-octave mailing list
address@hidden
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

a) If you want to remove entire rows/cols use an assignment to the empty matrix like
> A = repmat (1:5,5,1)
> A(:,1) = [] # this line removes the first column

b) Just for your information if you want to conditionally modify elements use the function find
>  A = repmat (1:5,5,1)
> A(find (A>3)) = 1

the same could be done (without using find) as follows
>  A = repmat (1:5,5,1)
> A(A>3) = 1

To relate the above to your problem you can set for instance a special value to the elements you want to remove
>  A = repmat (1:5,5,1)
> A(A>3) = nan

and then extract a matrix without those nans by using

> B = A(! isnan(A))

Enjoy!

/Fotios


reply via email to

[Prev in Thread] Current Thread [Next in Thread]