Usage of validateattributes with 'nonzero'

I am wondering whether this is a bug:
validateattributes([0 0 1],{'numeric'},{'nonzero'})
Should result in an error, but the test passes as long as at least one element of the vector is nonzero. The function documentation says otherwise.

回答 (1 件)

Adam
Adam 2017 年 3 月 22 日

0 投票

Which version of Matlab are you using? In R2017b:
>> validateattributes( [0 0 1], { 'numeric' }, { 'nonzero' } )
Expected input to be nonzero.
so it looks to be working fine. Maybe it is a bug in an older version though. Strangely, in all my thousands of usages of validateattributes over the years I have never actually used 'nonzero' so hadn't even realised it existed as an attribute!

4 件のコメント

Dirk Twisk
Dirk Twisk 2017 年 3 月 22 日
Hi Adam, I checked this in 2013b and 2015b.
Adam
Adam 2017 年 3 月 22 日
Hmm, I don't have R2015b or earlier installed any more, but it works in R2016a. Maybe it was fixed for that version.
Dirk Twisk
Dirk Twisk 2017 年 3 月 22 日
編集済み: Dirk Twisk 2017 年 3 月 22 日
OK. My solution is to do this:
>> validateattributes(prod([0 0 1]),{'numeric'},{'nonzero'})
Expected input to be nonzero.
Adam
Adam 2017 年 3 月 22 日
That should certainly work fine

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeProgramming Utilities についてさらに検索

タグ

質問済み:

2017 年 3 月 22 日

コメント済み:

2017 年 3 月 22 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by