| Re: [eigen] How to squeeze in place a vector matrix | 
[ Thread Index | 
Date Index
| More lists.tuxfamily.org/eigen Archives
] 
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] How to squeeze in place a vector matrix
- From: Bastien ROUCARIES <roucaries.bastien@xxxxxxxxx>
- Date: Wed, 25 Aug 2010 17:24:48 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;        d=gmail.com; s=gamma;        h=domainkey-signature:mime-version:received:received:in-reply-to         :references:date:message-id:subject:from:to:content-type         :content-transfer-encoding;        bh=PZ9y6TqiMefIK4xOErPJftS6ny6bgbcponDoJBSamHg=;        b=I6L6bYrCyo2S3W0Q+nKNUlPXTHUSnLDAA7MgAMrIYlDZbwDnNScgArtVq0UxUlFoEK         iJJXFFRJvyf/mpThWcKCdRFuRafIV5xzdXdF66/Skw3Ggp1g3SS5H8Ntr7lLyf/DboU+         0JwnDiy2xYaR0S37e/jDdgW/Txiq2AkzuXO7Y=
- Domainkey-signature: a=rsa-sha1; c=nofws;        d=gmail.com; s=gamma;        h=mime-version:in-reply-to:references:date:message-id:subject:from:to         :content-type:content-transfer-encoding;        b=f/0j6CBiCJeBmDWGs28jWrvxenxp+hy1LdABfXh1aK3imDrae3wo43xmZabrp1HM3v         TYztuzRvGEo9LLJn2aXxPzEVzYUt5fyU03UMWYfCicfaiaKOg4ikeiqfKU9Rm+F/CgxY         qjr06L57mLnfTxFsTxoGlPANMqh9WgffYYwcI=
On Wed, Aug 25, 2010 at 5:21 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> 2010/8/25 Bastien ROUCARIES <roucaries.bastien@xxxxxxxxx>:
>> On Wed, Aug 25, 2010 at 4:54 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>> 2010/8/25 Bastien ROUCARIES <roucaries.bastien@xxxxxxxxx>:
>>>> On Wed, Aug 25, 2010 at 4:18 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>>>> 2010/8/25 Bastien ROUCARIES <roucaries.bastien@xxxxxxxxx>:
>>>>>> Hi,
>>>>>>
>>>>>> I want to squeeze some line and column of matrix in place, in order to
>>>>>> remove the null space.
>>>>>>
>>>>>> How can  I do that?
>>>>>>
>>>>>> I have tryied block(i,j,k,l).eval()  but i think it is suboptimal
>>>>>
>>>>> Ah, I see, trying to avoid aliasing issues.
>>>>>
>>>>> In fact, in assignments, we are always traversing matrices
>>>>> left-to-right and top-to-bottom.
>>>>>
>>>>> So you can remove the eval() if you are a little careful. For example,
>>>>> this works:
>>>>>
>>>>> matrix.block(i,j,k,l) = matrix.block(i+1,j,k,l); // squeeze row i
>>>>>
>>>>> Of course this is relying on undocumented behavior; but I really don't
>>>>> see why we'd ever change this.
>>>>
>>>> Because it is really really useful removing null space on eigenvector
>>>> decomposition** ?
>>>
>>> I wasn't questioning the interest of removing null parts of matrices :-)
>>> I was saying that the behavior on why my trick above is relying,
>>> though undocumented, is unlikely to change.
>>>
>>
>> BTW this solution using block does not change the size of the matrix.
>> Do you know how to change the size ?
>
> Use conservativeResize().
Thanks
And i will welcome a punchout(row i, colum i) method for the next api
revision :)
Bastien