在matlab中检查向量的多样性

Checking variety of a vector in matlab

我正在尝试检查 matlab 中的矢量。例如,一个向量有 3 种不同的可能性 0 1 和 2。现在我想检查 matlab 中这个向量内部有多少个 0 1 和 2,这样我就可以为我的决策树确定最佳分割选择。也许有更简单的方法吗?

此致

使用 vector == some_num,您 return 向量中 some_num 位置的二进制数组。使用 vector(binary_array),您 return 数组的一个子集,由 binary_array 中的“1”表示。

放在一起:

vec = [ 0 0 1 1 1 2 2 2 2 2];
num_0 = length(vec(vec==0)); % = 2
num_1 = length(vec(vec==1)); % = 3

...

虽然我喜欢 Brendan 的回答,但我更喜欢下面的代码。

array = [1 2 1 0 3 1 1 4];
num_1 = numel( find(array==1) );

find 为您提供值的索引。您还可以使用 ~=<>.

我建议你把它改编成一个函数。