我找到了以下函数调用:
reshape(A, 1, [])
这使得矩阵A colum major变平。我想了解这个电话。函数文档说在A之后应该有重构矩阵的大小向量,但是在这里有一个后跟[]而不是两个向量。这是一种说法"做任何事情所以矩阵将有一行,我不在乎宽度是什么"?
为什么Matlab允许你像这样交换两个参数呢?我试着用Google搜索并没有找到解释,我想了解这里发生了什么。
答案 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的数组。