MatLab Logical answer always 1

2 ビュー (過去 30 日間)
Matlab_Student
Matlab_Student 2017 年 9 月 26 日
コメント済み: Jan 2017 年 9 月 26 日
I have 2017b installed on my mac. Below is the confusing part:.....
>> islogical(5<7)
ans =
logical
1
>> islogical(5>7)
ans =
logical
1
  1 件のコメント
Stephen23
Stephen23 2017 年 9 月 26 日
編集済み: Stephen23 2017 年 9 月 26 日
The MATLAB documentation for islogical states clearly that " tf = islogical(A) returns true if A is a logical array and false otherwise" (emphasis added). It does not state anywhere on the page that islogical tests what the value of the logical array is.
Lets try it. Both true and false are scalar logical arrays, so we would expect them both to return true if we test if they are logical arrays:
>> islogical(true)
ans = 1
>> islogical(false)
ans = 1
>>
So no surprises there: a logical array is a logical array.

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

採用された回答

Cedric
Cedric 2017 年 9 月 26 日
編集済み: Cedric 2017 年 9 月 26 日
Yes, all these tests (relational operators) return a logical, which is a value that is true (1) or false (0).
But:
>> 5 < 7 % Returns true (symbolized by 1).
ans =
logical
1
>> 5 > 7 % Returns false (symbolized by 0).
ans =
logical
0
  4 件のコメント
Cedric
Cedric 2017 年 9 月 26 日
編集済み: Cedric 2017 年 9 月 26 日
As Walter is pointing out, ISLOGICAL is a test of class/type, like ISCHAR for characters. And the class of what is "returned" by a test invovling logical operator is "logical".
>> class(5<7)
ans =
logical
Of course 5<7 has a value (here true), but this value has a class like all other types of data in MATLAB.
So ISLOGICAL is not "isTrue" (which doesn't exist by the way .. it would return true when true and false otherwise ;)).
Jan
Jan 2017 年 9 月 26 日
In other words: islogical(x) is equivalent to:
strcmp(class(x), 'logical')
or
isa(x, 'logical')
Remark: isa() is surprisinlgy slow: it needs about 4 times longer than the strcmp method.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Identification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by