Matlab 布尔与逻辑的区别
出于好奇,如果我在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类型,该函数本质上只是
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.