Как создать вектор со значением, зависящим от логического значения в других векторах в Matlab - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу создать новый категориальный вектор на основе значения другого вектора. Где каждое наблюдение верно только для одного вектора, например,

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

Так что я хочу, чтобы v4 назвал, какой вектор 'true', например:

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

1 Ответ

0 голосов
/ 25 апреля 2020

Основываясь на другом ответе, вы можете вычислить совпадения без использования для l oop, например, так (это также более динамичный подход c, поэтому он также должен работать с большими / другими таблицами).

% 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)).';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...