reshape可以创建0-by-1矩阵和1-by-0矩阵:
>> reshape([], [0 1])
ans =
Empty matrix: 0-by-1
>> reshape([], [1 0])
ans =
Empty matrix: 1-by-0
Run Code Online (Sandbox Code Playgroud)
reshape也可以为n > 2 创建一个n维数组,其中至少有一个维度为0.例如1
>> reshape([], [6 0 1 2 1])
ans =
Empty array: 6-by-0-by-1-by-2
Run Code Online (Sandbox Code Playgroud)
但我没有设法哄骗reshape生产0-by-0 任何东西(矩阵或数组,即).例如
>> reshape([], [0 0])
ans =
[]
>> reshape([], [0 0 1])
ans =
[]
Run Code Online (Sandbox Code Playgroud)
有没有办法生成MATLAB以交互方式显示为0-by-0矩阵的实体?
更好的是,有没有办法创建一个实体,MATLAB将以交互方式显示为m- by- n数组,对于任何非负整数m和n?2
(我对这个问题的兴趣来自于想要使函数返回的值我在一系列有效的输入参数中写得更加一致,即对用户来说不那么令人惊讶.)
1请注意尺寸1的任何拖尾尺寸如何自动移除,只要它们出现在第二个位置之后.
2更准确地说,我正在寻找x(1)isnumeric(x)是这样的true; (2)numel(x)是0; (3)x在MATLAB提示符下键入并按下命令[RETURN]产生显示的输出 Empty matrix: 0-by-0(或Empty array: 0-by-0).
[]是一个空的0乘0矩阵的matlab表示法.您创建了一个0乘0矩阵,它只是以另一种方式显示.
>> size(reshape([], [0 0]))
ans =
0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |