Как преобразовать операторы try-catch в октаве в форму Matlab? - PullRequest
0 голосов
/ 01 мая 2018

Мне нужно преобразовать старый код Octave в форму Matlab R2017a. Matlab не понимает упомянутый код и выдает ошибку:

Неопределенная переменная "lasterror" или класс "lasterror.message".

Ошибка в computeCentroids (строка 16) msg = lasterror.message;

Mathworks говорит, что "lasterror" будет или уже был удален из более современных версий Matlab. Лично я не знаком ни с lasterror.message, ни с парой try-catch. Надеюсь, вы поможете мне.

Код:

function centroids = computeCentroids(Xnum, Xcat, idx, K) 
[m n] = size([Xcat Xnum]);
centroids = zeros(K, n);
for i=1:K,
    indx = (idx(:,1)== i);
    try
        centroids(i,:) = [findMode(Xcat, indx) computeMean(Xnum, indx)];
    catch
        msg = lasterror.message;
        fprintf(strcat(msg, '\n'));
    end_try_catch
    end
end
.
.
.
.
end

1 Ответ

0 голосов
/ 01 мая 2018

Пожалуйста, проверьте документацию . Вы можете напечатать ошибку следующим образом:

try
   %Error-maker
catch e 
    fprintf(1,'There was an error! The message was:\n%s',e.message);
end
...