use*_*913 9 comparison matlab matrix
我只是好奇为什么Matlab可以将空矩阵与单个矩阵进行比较.特别是
>> [] == [1]
ans =
[]
这样做似乎很奇怪,我只是想知道为什么会这样做.这也适用于其他比较操作(<=,<,> =,>,!=).如果行或列的大小大于1,则会出错.
谢谢!
编辑:我也相信他们会为其他操作员执行此操作,例如加法,减法等.
Pra*_*ian 10
[](空矩阵)被0x0MATLAB 认为是有效的矩阵表示.从eq函数的文档中,使用运算符==比较矩阵时调用的函数,行为如下:
A == B将数组的每个元素与数组A的相应元素进行比较B,并返回一个数组设置为logical1(true)的数组,其中A和B是相等,或者逻辑0(false)它们不相等.表达式的每个输入都可以是数组或标量值....
如果一个输入是标量而另一个是非标量数组,则标量输入被视为具有与非标量输入数组相同尺寸的数组.
在比较中[] == [1],左操作数是非标量(isscalar([])返回0),而右操作数是标量.因此应用标量扩展规则,并将标量操作数扩展为非标量操作数的维度(在本例中0x0),结果为空矩阵.