Convertion between empty matrix and Null

I am trying to check if two vectors are identical, quite often these can be null or empty and of different lengths. I confess my ignorance as to the processes which decide wheather the matrix is null or empty, but I am trying to use an all command (the vectors are sorted and have unique elements). I hit a bug when one vector is null and the other Empty. Any ideas?
{strato =
[]
>> stratn
stratn =
Empty matrix: 1-by-0
>> stratn==stratn
ans =
Empty matrix: 1-by-0
K>> all(stratn==stratn)
ans =
1
K>> all(strato==strato)
ans =
1
K>> all(strato==stratn) ??? Error using ==> eq Matrix dimensions must agree.}

 採用された回答

James Tursa
James Tursa 2012 年 3 月 9 日

0 投票

Why not use the isequal function?

その他の回答 (3 件)

Jacob Halbrooks
Jacob Halbrooks 2012 年 3 月 9 日

1 投票

It is informative to inspect the dimensions of []:
>> size([])
ans =
0 0
In equality checks, the dimensions must agree, so this will be unequal to "vector" empties:
>> isequal(ones(0,0), ones(0,1))
ans =
0
I would suggest you use ISEMPTY if you want to treat all empties as the same:
>> isequal(isempty(ones(0,0)), isempty(ones(0,1)))
ans =
1
Walter Roberson
Walter Roberson 2012 年 3 月 9 日

0 投票

A matrix is empty if any of its dimensions are 0.
See also isempty()

1 件のコメント

Langyu
Langyu 2013 年 11 月 2 日
Thanks, I think this answer works best.

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

Sean Danaher
Sean Danaher 2012 年 3 月 12 日

0 投票

many thanks to James and also Jacob with a more comprehensive answer

カテゴリ

ヘルプ センター および File ExchangeData Type Identification についてさらに検索

製品

タグ

質問済み:

2012 年 3 月 9 日

コメント済み:

2013 年 11 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by