matlab函数参数中[]的含义是什么?

时间:2015-09-22 18:20:51

标签: matlab

我找到了以下函数调用:

reshape(A, 1, [])

这使得矩阵A colum major变平。我想了解这个电话。函数文档说在A之后应该有重构矩阵的大小向量,但是在这里有一个后跟[]而不是两个向量。这是一种说法"做任何事情所以矩阵将有一行,我不在乎宽度是什么"?

为什么Matlab允许你像这样交换两个参数呢?我试着用Google搜索并没有找到解释,我想了解这里发生了什么。

1 个答案:

答案 0 :(得分:6)

[]是一个空矩阵。在许多MATLAB内置函数中,空矩阵被解释为“在此处使用默认参数”或“自动确定此值”。有时,它用于消除函数的两个含义的歧义,与max函数一样,其中max(A,2)A的每个元素与2进行比较并返回较大的值max(A,[],2)找到每行的最大元素。

如果您阅读help for reshape,您会看到以下内容:

  

您可以指定单个尺寸大小[]以自动计算尺寸大小,以使B中的元素数与A中的元素数相匹配。例如,如果A是10 x 10矩阵,则reshape(A,2,2,[])A的100个元素重新整形为2 x 2 x 25的数组。