Проблема добавления элемента в матрицу в условии if-else в Matlab - PullRequest
0 голосов
/ 09 декабря 2018

Я пишу простую программу для реализации искусственной нейронной сети для распознавания рукописных символов с использованием Matlab.Я использовал следующий код для установки целевых данных в соответствии с различными символами.

Вот часть кода:

load('dataset.mat')

Target_Set=zeros(2,400); %Initialize Target array with 0s

%Set dimensions to resize
h = 50;
w = 45;
imgSize = h*w;

for j=1:4
    for i=1:10
        for k=1:10
            Temp_Struct = struct('im',imresize(handwriting(i,j,k).im,[h,w]));
            n = 100*(j-1) + 10*(i-1) + k;
            P_Set(1:imgSize,n) = reshape(Temp_Struct.im,[imgSize,1]); 

            %Set Target patterns...
            if (j==1) %When character I                   %   Target Patterns...
Line 19========>Target_Set(0,n) = 1;                     %    I   J   K   L
                Target_Set(1,n) = 0;                     %    0   1   0   1
            elseif(j==2) %When character J               %    0   0   1   1
                Target_Set(0,n) = 1;
                Target_Set(1,n)=0;
            elseif(j==3) %When character K            
                Target_Set(0,n) = 0;
                Target_Set(1,n)=1;
            else %When character L       
                Target_Set(0,n) = 1;
                Target_Set(1,n)=1;            
            end;

        end;
    end;
end;

Когда я запускаю это, у меня появляется такая ошибка:

enter image description here

Я не мог понять, почему такая ошибка возникает в строке 19. Добро пожаловать за любую помощь.

1 Ответ

0 голосов
/ 09 декабря 2018

Массивы в Matlab начинаются с индекса № 1. Поэтому он жалуется на использование вами значения 0 в качестве индекса массива.Это должно быть правильно, как это.

Target_Set(1,n) = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...