我有一个 194×1 矩阵。当我尝试找到它的大小时,我收到以下消息:
Subscript indices must either be real positive integers or logicals.
所有的价值观都是积极的和合乎逻辑的,有什么问题?
您是否可能不小心覆盖了该size
功能?
>> which size
应该给出这个输出
内置 (C:\XXX\toolbox\matlab\elmat\size)
如果你得到类似的东西
大小是一个变量
然后你重写这个函数。
要修改这一点,您必须clear
使用变量
>> clear size
现在您可以使用该功能
>> size( A )
你能提供你的代码吗?如果您这样做,它应该可以工作:
[rows cols] = size(A);
或者
rows = length(A);
在 MATLAB 中,size
是一个返回数组(矩阵、元胞数组等)维度的函数。但是,MATLAB 也支持重载。当您调用size(A)
(假设A
是您的矩阵)时,MATLAB 解释器首先检查是否存在名称为 的重载变量/函数size
。
size
显然,根据错误消息判断,您有一个名为 的变量,因此对于 MATLABsize(A)
意味着您尝试size
使用下标变量索引到矩阵中A
。似乎A
有一个或多个零元素,并且由于禁止 MATLAB 中的非正索引,这会触发上述错误。
最简单的解决方案是为变量使用另一个名称,这样您就可以毫无问题size
地调用内置函数。size