Из любопытства, если я набираю эти строки в MATLAB:
a = logical([12 0 1.2]);
b = boolean([12 0 1.2]);
Выходные переменные a
и b
являются одинаковыми (одно и то же значение и тип). Следовательно, есть ли разница между boolean
и logical
?
Из любопытства, если я набираю эти строки в MATLAB:
a = logical([12 0 1.2]);
b = boolean([12 0 1.2]);
Выходные переменные a
и b
являются одинаковыми (одно и то же значение и тип). Следовательно, есть ли разница между boolean
и logical
?
Быстрый просмотр булевой функции может дать вам хороший ответ на ваш вопрос:
Если вы введете: edit boolean
в консоли matlab, вы получите:
function y = boolean(x)
%BOOLEAN Creates a boolean vector.
% This function is typically used in Simulink parameter dialogs, such as
% the Constant block dialog. This function generates a logical vector,
% which is treated as a boolean value in Simulink. Now that logical is a
% MATLAB type, this function is essentially just an alias.
%
% Y = BOOLEAN(X) Converts the vector X into a boolean vector.
%
% Example:
% boolean([0 1 1]) returns [0 1 1]
%
% See also LOGICAL.
% Copyright 1990-2012 The MathWorks, Inc.
narginchk(1,1);
if ~isreal(x)
DAStudio.error('Simulink:utility:BooleanCannotBeComplex');
end
y = logical(x);
Если вы посмотрите на последнюю строку этой функции, вы увидите, что логическая функция вызывает логическую функцию.
logical
является встроенным MATLAB, boolean
является функцией Simulink.
Часть возврата от ввода help boolean
:
Эта функция обычно используется в диалогах параметров Simulink, таких как диалог с константным блоком. Эта функция генерирует логический вектор, который рассматривается как логическое значение в Simulink. Теперь, когда логический MATLAB, эта функция по существу является просто псевдонимом.
Если вы введете edit boolean
в командной строке, вы увидите, что он просто вызывает logical
на входе.
Просто, чтобы быть предельно ясным: в MATLAB нет типа типа boolean
(по крайней мере, не больше).
Явно продемонстрировать, что заявлял OP:
>> a = logical([12 0 1.2]); >> b = boolean([12 0 1.2]); >> whos a b Name Size Bytes Class Attributes a 1x3 3 logical b 1x3 3 logical
boolean
не является распознанным типом:
>> cast(a,'boolean')
Error using cast
Unsupported class for conversion.
Как говорили другие ответы, функция boolean
поставляется с Simulink и является чуть более чем псевдонимом для logical
.
Boolean - это просто псевдоним для логического теперь, так как логический также является типом MATLAB. Boolean все еще используется в Simulink. Infact, boolean сам по себе просто вызывает функцию логическую.