[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Deleting equal rows/columns in matrix
From: |
AlbFrigerio |
Subject: |
Re: Deleting equal rows/columns in matrix |
Date: |
Wed, 20 Oct 2010 08:33:32 -0700 (PDT) |
YES!!!!!
Thank you so much , I hadn't found it in the manual ... how stupid I am!! By
the way, everybody says that the best way to learn programming is to program
yourself : I made my own program and, with entries between 0 and 9, it is
faster than Octave ones :)
Thanks again,
Alberto
bpabbott wrote:
>
>
> On Oct 20, 2010, at 10:25 PM, AlbFrigerio wrote:
>>
>> Fotios Kasolis wrote:
>>>
>>> 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
>>>> --
>>>
>>> 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
>>
>> Thank you Ben and Fotios, you gave me correct answers, but I believe I
>> have
>> not explained well my problem. I don't want to delete "una tantum" a row
>> or
>> a column, I want that my program, given the following matrix as input
>>
>> A = [1 0 1 0 9 0 1 ; 1 0 1 0 1 9 1 ; 0 1 9 1 0 1 9 ; 1 1 1 1 1 0 9 ; 1 0
>> 1
>> 0 1 9 1; 1 1 1 1 0 1 9]
>>
>> deletes the 5th row because it is the same of the 2nd one, or the 4th
>> column
>> (equal to the 2nd one). Obviosly it is "easy" to look manually for the
>> duplicates in a small matrix like the previous one, but imagine your
>> matrix
>> to have more rows and colums.
>>
>> Thanks again,
>> Alberto
>
> Take a look at unique().
>
> help unique
>
> To get the unique rows of a matrix, X, ...
>
> X = unique (X, "rows")
>
> To get the columns ...
>
> X = unique (X.', "rows").'
>
> Does that do what you want?
>
> Ben
>
>
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://www-old.cae.wisc.edu/mailman/listinfo/help-octave
>
>
--
View this message in context:
http://octave.1599824.n4.nabble.com/Deleting-equal-rows-columns-in-matrix-tp3003845p3004123.html
Sent from the Octave - General mailing list archive at Nabble.com.
- Deleting equal rows/columns in matrix, AlbFrigerio, 2010/10/20
- Re: Deleting equal rows/columns in matrix, Ben Abbott, 2010/10/20
- Re: Deleting equal rows/columns in matrix, GFotios, 2010/10/20
- Re: Deleting equal rows/columns in matrix, AlbFrigerio, 2010/10/20
- Re: Deleting equal rows/columns in matrix, Ben Abbott, 2010/10/20
- Re: Deleting equal rows/columns in matrix,
AlbFrigerio <=
- Re: Deleting equal rows/columns in matrix, Jaroslav Hajek, 2010/10/20
- Re: Deleting equal rows/columns in matrix, AlbFrigerio, 2010/10/21
- Re: Deleting equal rows/columns in matrix, Jaroslav Hajek, 2010/10/23
- Re: Deleting equal rows/columns in matrix, AlbFrigerio, 2010/10/25
- Re: Deleting equal rows/columns in matrix, AlbFrigerio, 2010/10/20