2015-04-10 1 views
1

код следующим образом:как установить ILArray <fcomplex> 2D-матрица для конкретного значения?

ILLogical isevanescent = abs(f)/abs(kx) < c; 
SIGk[isevanescent] = new fcomplex(0, 0); 

, где SIGk является ILArray типа с 2D размера, и isevanescent нелогично типа с тха одинакового размера. Я хочу, чтобы элемент SIGk был равен нулю, когда значение isevanescent element равно 1; но здесь ошибка «изменение размера массива с помощью последовательного доступа к индексной поддерживается пустой, скаляр или вектор только»

в matlatb, рабочий код:

isevanescent = abs(f)./abs(kx)<c; 
SIGk(isevanescent) = 0; 

здесь что-то не так в моем коде?

+1

Какой размер 'isevanescent'? Что такое SIGk? –

+0

благодарю вас. Я снова проверю свой код и найду ошибку, и теперь он работает – 07012220

ответ

0

Да, я должен проявлять осторожность в отношении размера, спасибо Haymo. сейчас, у меня есть другая проблема. когда я implent код последующих, ошибка приходит ....

ILLogical I = idxk < 0 || idxk > siz[0]-1; 

где idxk = 1502 * 1 размер и СИЗ является ИНТ [] СИЗ определить и СИЗ [0] -1 = 1501. ошибка

Blockquote

"нескалярными Логично преобразования BOOL См ILSettings.LogicalArrayToBoolConversion."

Blockquote

в MATLAB, я реализовать как следующее:

I = idxk<1 |idxk>siz(1); 
    C(I) = 0; idxk(I) = 1;   
+0

, это должно войти в новый новый вопрос, пожалуйста. –