У меня есть Matlab-функция, которая возвращает tutorial_main(xalpha)
мне struc
элемент 2 записей (из-за авторские права, я не могу предоставить вам функции :()Вызов функции в сценарии и командной строке получает другой результат
Всякий раз, когда я вызываю функцию из командной строки с fit_t = []; alpha = 0.01; fit_t = [fit_t tutorial_main(alpha)];
это работает просто отлично
Всякий раз, когда я делаю то же самое в сценарии внутри цикла, я получаю сообщение об ошибке:.
fit_t = []
for alpha = 0.01:0.01:1
tic;
fit_t = [fit_t tutorial_main(alpha)];
time = toc;
end
Ошибка:
Improper assignment with rectangular empty matrix.
Error in tutorial_main (line 286)
ML(1) = myvect(p{1}(max(marglik{1})==marglik{1}));
Error in ass5 (line 14)
fit_t = [fit_t tutorial_main(alpha)];
и иногда она работает в течение нескольких итераций, но после того, как третий дает мне
In an assignment A(I) = B, the number of elements in B and I must be the
Error in tutorial_main (line 286)
ML(1) = myvect(p{1}(max(marglik{1})==marglik{1}));
Error in ass5 (line 14)
fit_t = [fit_t tutorial_main(alpha)];same.
Я действительно не понимаю, почему я получаю сообщение об ошибке. Функция в обоих случаях должна быть названа одинаковым образом. Запуск clear all
до этого ничего не меняет.
Теперь Вейрдест часть: Когда я поставил точку останова в time = toc
, и по-прежнему вручную после каждого цикла, я не получаю сообщение об ошибке. Удаление tic/toc
не помогает. Редактировать: Хорошо, иногда я также получаю сообщение об ошибке с точками останова.
Без примера кода, который дублирует ваша проблема. Я не уверен, что вы ожидаете от кого-либо. Используйте ['dbstop if error'] (http://www.mathworks.com/help/matlab/ref/dbstop.html#buzezti-1), чтобы оценить ваше рабочее пространство при ошибке. Я также считаю, что ['max'] (http://www.mathworks.com/help/matlab/ref/max.html) необязательно возвращает одно значение. – excaza
Ну, как я называю функцию по существу с теми же командами, я думал, что должно быть что-то вообще неправильное? Не следует ли возвращать функцию при вызове с теми же значениями? – skjerns
Он не работает с одинаковыми значениями. Ваша 'alpha' меняется в цикле. – excaza