Matlab 布尔与逻辑的区别

Matlab 布尔与逻辑的区别,matlab,boolean,Matlab,Boolean,出于好奇,如果我在MATLAB中键入以下行: a = logical([12 0 1.2]); b = boolean([12 0 1.2]); 输出变量a和b相同(值和类型相同)。因此,布尔和逻辑之间有什么区别吗?逻辑是一个MATLAB内置函数,布尔是一个Simulink函数 键入帮助布尔值返回的部分内容: 此函数通常用于Simulink参数对话框,例如 “常量块”对话框。该函数生成一个逻辑向量, 它在Simulink中被视为布尔值。现在,这是一个逻辑问题 MATLAB类型,该函数本质上只是

出于好奇,如果我在MATLAB中键入以下行:

a = logical([12 0 1.2]);
b = boolean([12 0 1.2]);

输出变量
a
b
相同(值和类型相同)。因此,
布尔
逻辑
之间有什么区别吗?

逻辑
是一个MATLAB内置函数,
布尔
是一个Simulink函数

键入
帮助布尔值返回的部分内容

此函数通常用于Simulink参数对话框,例如 “常量块”对话框。该函数生成一个逻辑向量, 它在Simulink中被视为布尔值。现在,这是一个逻辑问题 MATLAB类型,该函数本质上只是一个别名


如果在命令行中键入
edit boolean
,您将看到它基本上只对输入调用
logical

快速查看布尔函数可以很好地回答您的问题:

如果在matlab控制台中键入:
edit boolean
,则会得到:

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的别名,因为logical也是MATLAB类型。布尔值仍然在Simulink中使用。实际上,布尔本身只是简单地调用逻辑函数

非常清楚:在MATLAB中没有
布尔值
数据类型(至少现在没有了)

明确说明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
函数与Simulink一起提供,只不过是
logical
cast的别名。

Matlab中真的存在
boolean
吗?您使用哪个Matlab版本?在R2011b和R2013b中,我可以执行它。我认为,
布尔值
以某种方式连接到Simulink。顺便说一句,谢谢你的回复。这个问题并不重要,但我只是好奇:)我明白了。是的,更不用说
这个函数本质上只是描述中的一个别名
>> cast(a,'boolean')
Error using cast
Unsupported class for conversion.