>我有两个行数相同的列数组:
>> size(values)
ans =
12915 1
>> size(positions)
ans =
12915 1
values
包含一些 NaN 条目:
>> sum(isnan(values))
ans =
2500
而"仓位"由整数值填充:
>> sum(isnan(positions))
ans =
0
两个数组中的一些值:
values(randi(length(values), 10, 1))
ans =
0.0290
0.1000
0.0430
NaN
0.0310
0.9700
0.3170
0.1750
NaN
0.1410
positions(randi(length(positions), 10, 1))
ans =
5
8
12
11
10
6
10
3
9
4
如果我尝试使用这两列创建一个table
,我会收到一条难以理解的(对我来说)错误消息:
>> table(values, positions)
Subscript indices must either be real positive integers or logicals.
我尝试删除了 NaN 值但没有成功:我不断收到相同的错误消息。但是,我无法理解错误消息。
怎么了?
您很可能已经创建了一个名为 table
的变量。如果您键入whos table
则可能会得到如下结果:
whos table
Name Size Bytes Class Attributes
table 1x1 8 double
您可以通过简单地清除table
变量来解决此问题:clear table
。这将保留函数但删除变量。
请注意,您已经在某处创建了table
变量,因此您可能也在某处使用它(特别是如果您有一个主要包含脚本而不是函数的大型项目)。仅删除变量可能会导致代码损坏。因此,我建议您在脚本中搜索变量名称,并确保不会破坏任何内容。
table(a,b) 表示法用 a 和 b 为矩阵表编制索引。由于您的值是非整数,因此您会收到此错误消息。我想,您打算做的是合并两个列向量。为此,您可以使用 [ ],作为
这表 = [值位置]
仍然会包含 nan 值,但我想这不会打扰你
校正
但是,如果您想将表中的值添加到它们的位置,您可以使用
表(位置)=值