У меня есть следующий код, который отлично работает в MATLAB, и я транспонирую его в SAS/PROC IML:
[row col] = size(coeff);
A_temp = zeros(row,col);
for i = 1: row/6
A_temp(6*(i-1)+1:6*i,:) = coeff(6*(i-1)+1:6*i,4:col);end;
В Proc IML я делаю следующее:
proc iml;
use i.coeff;
read all var {...} into coeff;
print coeff;
row=NROW(coeff);
print row;
col=NCOL(coeff);
print col;
A_temp=J(row,col,0); *create zero matrix;
print A_temp;
Do i=1 TO row/6;
A_temp[(6*(i-1)+1):(6*i),]=coeff[(6*(i-1)+1):(6*i),(4:col)];
END;
quit;
Код ломается в цикле DO "(выполнение) Матрицы не соответствуют операции. "...почему? Если я правильно понимаю в PROC IML, если я хочу выбрать весь столбец (в MATLAB это будет ":"), но в SAS IML я просто оставлю его пустым