Мне нужна помощь Числовое сравнение в Matlab - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть одна матрица, называемая целями (1X4000);столбец с 1 по 2000 содержит двойное значение 0, а столбец с 2001 по 4000 содержит двойное значение 1

a) я хочу создать матрицу с именем target_1, в которой я хочу проверить, равно ли значение 0, затем сделать запись 1, так чтона конец дня у меня должна быть матрица с: столбец с 1 по 2000 со значением 1 и столбец 2001: 4000 со значением ноль

b) Та же ситуация, что и выше, но на этот раз я хочу проверить, является ли значение1, затем введите 1 и, если он равен нулю, введите 0;в конце;моя новая матрица target_2 содержит значения: столбец с 1 по 2000 со значением ноль и столбец 2001: 4000 со значением 1

я знаю, как использовать функцию strcmp для такой проверки со строками, но проблема в том, что моя исходная матрицаdouble, и я не знаю, есть ли такая функция, как

setosaCmp = strcmp ('setosa', разновидности);

, которая могла бы работать с double (числами);любая помощь будет оценена

Ответы [ 3 ]

1 голос
/ 16 ноября 2011
targets1 = double(targets == 0);
targets2 = targets;
1 голос
/ 14 ноября 2011

Ваш вопрос не очень понятен.Похоже, что следующее будет соответствовать вашему описанию:

targets_1 = 1 - targets;
targets_2 = targets;
0 голосов
/ 14 ноября 2011

Я основываю этот ответ исключительно на том факте, что вы упомянули setosaCmp = strcmp('setosa', species);. Исходя из этого, я предполагаю, что

  1. У вас есть Statistics Toolbox, так как setosa - это разновидность ириса из набора данных Fisher Iris, широко используемая в демонстрациях Statistics Toolbox, и
  2. У вас есть переменная, содержащая метки классов, и вы хотите создать некоторые переменные индикатора класса (т. Е. Новую переменную для каждой метки класса, каждая из которых равна 1, когда элемент находится в этом классе, и 0, если его нет ).

Это правильно? Если нет, пожалуйста, игнорируйте меня.

Если я прав, то я думаю, что вы ищете команду dummyvar из панели инструментов статистики. Попробуйте это:

>> classLabels = [1, 2, 1, 2, 3, 1, 3];
>> dummyvar(classLabels)
ans =
 1     0     0
 0     1     0
 1     0     0
 0     1     0
 0     0     1
 1     0     0
 0     0     1
...