布尔和逻辑之间的区别

tas*_*hka 12 matlab boolean

出于好奇,如果我在MATLAB中键入这些行:

a = logical([12 0 1.2]);
b = boolean([12 0 1.2]);
Run Code Online (Sandbox Code Playgroud)

输出变量ab相同(相同的值和类型).因此,boolean和之间有什么区别logical吗?

Eti*_*nne 14

快速浏览一下布尔函数可以很好地回答你的问题:

如果您输入: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);
Run Code Online (Sandbox Code Playgroud)

如果查看此函数的最后一行,可以看到布尔函数调用逻辑函数.

  • 更不用说"这个功能在描述中基本上只是一个别名" (2认同)

nkj*_*kjt 8

logical是一个内置的MATLAB,boolean是一个Simulink函数.

输入的部分回报help boolean:

此函数通常用于Simulink参数对话框,例如常量块对话框.此函数生成一个逻辑向量,在Simulink中将其视为布尔值.既然逻辑是MATLAB类型,这个函数基本上只是一个别名.

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