В вашем коде утверждение
X=size(im,1);
возвращает размер переменной im
вдоль ее первого измерения. Это вернуло бы скалярное значение. Тем не менее, у вас есть for
цикл:
for x=1:2
...
summ=summ+(X(x)*exp(w3));
end
, который перебирает значения x = 1
и x = 2
. Когда вы пытаетесь оценить X(x)
, когда x = 2
, вы получаете ошибку, потому что X
имеет только один элемент.
По сути, вы делаете что-то эквивалентное этому:
X = 5
X(2)
Кроме того, ваш цикл for для u
:
for u=0:(X-1)
начинается с u = 0
, но позже вы пытаетесь установить
PQ3(u)=summ;
Однако индексирование массива в MATLAB 1 основано на , поэтому PQ3(0)
приведет к ошибке. Вы должны начать индексирование с 1: PQ3(1) = summ
.