[Scilab-users] [EXTERNAL] Re: submatrix issue

amonmayr at laas.fr amonmayr at laas.fr
Fri Jun 1 13:52:27 CEST 2018


Le 01/06/2018 à 12:46, Carrico, Paul a écrit :
>
> Evstr(resu(k)) is a paste error - I’m reading an asci file J
>
> Without using a loop, I would like to get the n th component of the 
> vector resu(k) … k is no more no less than the index of specific lines 
> I’m trying to get …
>
> Through your answers I’m understanding that I’m thinking on a bad way
>

I think you can achieve what you want to do without a for loop.
But my feeling is that there is something wrong with the way you index 
your matrix NodesMatrix2(i,j+1) and your results resu(k).
When you index with "i" and "j+1" that are vectors of length N & M, you 
are basically indexing NxM elements of you matrix.
This seems to be the core of the issue here.
Maybe  indexing your matrix like a vector (ie NodesMatrix2(p) with p in 
[1:length(NodesMatrix2)]) would be better.

Antoine

> Paul
>
> */EXPORT CONTROL :
> /**Cet email ne contient pas de données techniques
> This email does not contain technical data*
>
> *De :*users [mailto:users-bounces at lists.scilab.org] *De la part de* 
> antoine monmayrant
> *Envoyé :* vendredi 1 juin 2018 11:55
> *À :* users at lists.scilab.org
> *Objet :* [EXTERNAL] Re: [Scilab-users] submatrix issue
>
> Hello,
>
> What do you wan to achieve exactly?
> As Stéphane pointed out, the sizes are not the same.
> When you assign something like:
>
> A=B;
>
> You have two different situations:
>
> 1) size(A)==size(B)
> 2) size(B)=[1,1]
>
> In the first case, you assign each element of B to each element of A. 
> In the latter case (which corresponds to your commented line), B is 
> just a scalar that gets assigned to each element of A.
>
> In the current situation, you are neither in case 1) nor in case 2).
> As you have size(NodesMatrix2(i,j+1))=[300,300] and 
> size(resu(k))=[300,1], you might want to replicate resu(k) 300 times 
> and fill NodesMatrix2(i,j+1) with these 300 copies. If this what you 
> want to do, here is the code:
>
> NodesMatrix2(i,j+1)=resu(k)*ones(1,300);
>
> By the way, why do you use "evstr(resu(k))" instead of "resu(k)"?
>
> Antoine
>
> Le 01/06/2018 à 11:45, Stéphane Mottelet a écrit :
>
>     It cannot work since
>
>     --> size(k)
>      ans  =
>
>        300.   1.
>
>
>     --> length(i)*length(j)
>      ans  =
>
>        90000.
>
>     i.e. NodesMatrix2(i,j+1) has 90000 elements and resu(k) has 300
>
>     S.
>
>     Le 01/06/2018 à 11:07, Carrico, Paul a écrit :
>
>
>     Dear all
>
>     I’ve a submatrix issue on the following example, and I do not
>     remember (or understand) why : how can I do this ?
>
>     (the goal is to extract and to store within a matrix results from
>     an Ascii file)
>
>     Thanks for any help
>
>     Paul
>
>     ###############################################################
>
>     mode(0)
>
>     clearall
>
>     StartNodeLine= 1;
>
>     NumberOfNodes= 100;
>
>     DimCoordinates= 3;
>
>     resu= rand(1000,1);
>
>     tic();
>
>     NodesMatrix2= zeros(NumberOfNodes,DimCoordinates+1);
>
>     i= [1 : NumberOfNodes]'; NodesMatrix2(i,1) =
>     _evstr_(resu(StartNodeLine + (DimCoordinates+2)*(i-1)+2));
>
>     i= [1 : NumberOfNodes]'.*.ones(1,DimCoordinates)';
>
>     j= ones(1,NumberOfNodes)'.*.[1 : DimCoordinates]';
>
>     k= StartNodeLine + (DimCoordinates+2)*(i-1)+3+j;
>
>     a= _evstr_(resu(k));
>
>     NodesMatrix2(i,j+1)= _evstr_(resu(k)); /// does not work/
>
>     ///NodesMatrix2(i,j+1) = 1; // work(basic assignement)/
>
>     Duration2= toc()
>
>     */EXPORT CONTROL :
>     /**Cet email ne contient pas de données techniques
>     This email does not contain technical data*
>
>
>
>     _______________________________________________
>     users mailing list
>     users at lists.scilab.org <mailto:users at lists.scilab.org>
>     https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__antispam.utc.fr_proxy_1_c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy_lists.scilab.org_mailman_listinfo_users&d=DwMD-g&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJhZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=fOPIPj4x1fd9eOUJD7v02ZTsRx2YJgno3lkgkK1O5b8&s=jzcapXMklHaIuDt_60w1DlJCIqVOV-xY54WDwPzYsNY&e=>
>
>
>
>
>
>
>
>     _______________________________________________
>
>     users mailing list
>
>     users at lists.scilab.org <mailto:users at lists.scilab.org>
>
>     http://lists.scilab.org/mailman/listinfo/users
>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.scilab.org_mailman_listinfo_users&d=DwMD-g&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJhZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=fOPIPj4x1fd9eOUJD7v02ZTsRx2YJgno3lkgkK1O5b8&s=qWqrTkz0H8OBLBxbPldRtat8qjyFFW2cf-apUFUk8wM&e=>
>
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users


-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

  Antoine Monmayrant LAAS - CNRS
  7 avenue du Colonel Roche
  BP 54200
  31031 TOULOUSE Cedex 4
  FRANCE

  Tel:+33 5 61 33 64 59
  
  email : antoine.monmayrant at laas.fr
  permanent email : antoine.monmayrant at polytechnique.org

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20180601/d40d486e/attachment.htm>


More information about the users mailing list