0

私のコードはこの種の構造で動作します

K>> mlf=sparse([],[],[],2^31+1,1); mlf(1)=1; mlf

mlf =

                  (1,1)                       1

しかし、ゼロより大きいmlfの項を選択する以下のこの種の入力では失敗します(この選択が入力をどのように変えるのか理解できません)

K>> mlf=sparse([],[],[],2^31+1,1); mlf(1)=1; mlf(mlf>0)

ans =

   (1,1)        1

唯一の視覚的な違いは、いくつかのタブ/スペースです。

それらがどのように違うのか説明してください。

4

2 に答える 2

0

Rody Oldenhuis は、whos

>> mlf=sparse([],[],[],2^31+1,1); mlf(1)=1; mlf=mlf(mlf>0)

mlf =

   (1,1)        1


>> whos mlf
  Name      Size            Bytes  Class     Attributes

  mlf       1x1                32  double    sparse    

>> mlf=sparse([],[],[],2^31+1,1); mlf(1)=1; mlf

mlf =

                  (1,1)                       1

>> whos mlf
  Name               Size            Bytes  Class     Attributes

  mlf       2147483649x1                32  double    sparse    

これは重要な問題を示しています: 構造のサイズが変更されました. chappjc は、新しい変数を導入することで、この問題を解決する方法を提供しました。

于 2013-11-01T21:23:08.900 に答える