2014-09-03 2 views
0

Я новичок в matlab, и у меня есть определенная z-матрица размером m × 1 со значениями 0,1,3,5,2 и т. Д. С повторением значений. Теперь у меня есть еще 4 столбцовые матрицы x1, x2, и y, и я хочу сделать регрессию.Matlab -Выберите конкретные значения в матрице

Я использовал lm = LinearModel.fit(x,y,'linear') указания columns.Now я хочу сделать регресс только для значений в матрице x1, x2, и y для тех, которые соответствуют г матрицы со значением 1 и пренебрежение другой rows.How я делаю это ?

+0

Не могли бы вы предоставить простой, повторяемый примерный код, который поможет другим понять проблему и цель? – Trogdor

+1

Несвязанный намек: используйте символ «Alt-0215» для символа умножения × вместо x в проводках. Это действительно выглядит намного лучше, чем m × 1 вместо mx1. – ja72

+0

@ ja72 прохладный! Спасибо за совет! – rayryeng

ответ

1

Это очень просто. Я собираюсь предположить, что ваша матрица предикторных переменных и выходов также имеет размер m (количество выборок). Все, что вам нужно сделать, это найти местоположения в пределах z, которые составляют 1, подмножество 3-х столбчатой ​​матрицы x1,x2,x3 и y, а затем используйте LinearModel.fit для соответствия вашим данным. Если предположить, что матрица предикторов хранится в X, и ваши выходы сохраняются в y, вы могли бы сделать это:

ind = z == 1; 
xOut = X(ind,:); 
yOut = y(ind); 
lm1 = LinearModel.fit(xOut, yOut, 'linear'); 

Кстати, это очень простые операции Подменю в среде MATLAB. Предложите вам прочитать учебное пособие, прежде чем задавать дополнительные вопросы здесь.

Смежные вопросы