我有矩阵形式的数据,其中每列代表一个测量。
每列可以代表布尔值,整数或连续数字。
1
或0
-3, -2, -1, 0, 1, 2, 3
0.2, 5.0, 9.5, ...
矩阵很大所以我希望在Matlab中自动识别每个列的类型。
示例矩阵:
1 0.2 3 . . .
0 4.5 2 . . .
1 6.0 1 . . .
1 7.0 2 . . .
0 9.5 3 . . .
0 8.0 2 . . .
我想识别每种类型,以便我可以适当地改变值,以了解被测系统的行为。例如:
if boolean
value = ~value; % Change switch/Boolean values to their opposite
end
if integer
value = value + 1 % Increase integer values by 1
end
if continuous
value = value + 0.1; % Increase continuous values by 0.1
end
任何建议都将不胜感激。
答案 0 :(得分:2)
您可以使用以下方法定义列的类型:
isBool = all((data - ~(~(data))) == 0)
isInteger = all((data - round(data)) == 0) & ~isBool
isNumber = ~isBool & ~isInteger
这使用了每种类型的以下特征
未来的读者:看看@Wolfie的评论。