如何在Matlab中创建一个值依赖于其他向量中布尔值的向量



我想根据另一个向量的值创建一个新的分类向量。其中每个观察结果仅适用于一个矢量,例如

v1 v2 v3
0, 1, 0 
1, 0, 0 
1, 0, 0

所以我想让v4命名哪个向量是"真"的,比如:

v1 v2 v3 v4
0, 1, 0, v2
1, 0, 0, v1
1, 0, 0, v1

在另一个答案的基础上,您可以在没有像这样的for循环的情况下计算匹配(这也是一种更动态的方法,因此也应该适用于较大/其他表(。

% assuming your data is stored in table, t
[indices,~] = find(t.Variables.');
t.v4 = categorical(t.Properties.VariableNames(indices)).';

或者在一行中

t.v4 = categorical(t.Properties.VariableNames(mod(find(t.Variables.')-1,size(t.Variables,2))+1)).';

最新更新