Я хочу использовать функцию stats::swGOFT
в MuPAD. У меня есть числовой вектор, который называется r
. Я использовалКак передать векторную переменную Matlab функции MuPAD?
feval(symengine, 'stats::swGOFT', r);
Ошибка была
Error using mupadengine/feval (line 157)
MuPAD error: Error: Some data are of invalid type.
Так что я попытался более прямой путь, который работал:
feval(symengine, 'stats::swGOFT', 1,2,3,4);
Но это не сработало:
feval(symengine, 'stats::swGOFT', [1,2,3,4]);
Моя переменная r
является 1146 на 1 двойной вектор. Очевидно, я не могу вручную вводить все числа. Итак, как передать векторную переменную r
функции MuPAD stats::swGOFT
?
Я не понимаю этого: 'stats :: swGOFT (['rStr'])'. Похоже, что грамматика Мупада отличается от Matlab. В противном случае '['rStr']' inside 'stats :: swGOFT()' не имеет смысла в Matlab. Возможно, именно поэтому я не работал в Мупаде. Но так или иначе код работал. Благодаря! – fyang
Почему существуют пробелы перед и после rStr в '['rStr']'? Я удалил пробелы, и этот '['rStr']' не работал. Таким образом, '['rStr']' эквивалентно списку чисел, например. '1, 2, 3, 4'. На самом деле сложно. – fyang
@fyang: Это не 'статистика :: swGOFT (['rStr'])', но '['stats :: swGOFT ([' rStr '])']'. Это не сложно, это просто конкатенация строк. Вы не вызываете 'stats :: swGOFT' напрямую, а скорее говорите' feval' или 'evalin', чтобы вызвать его в правильном контексте. Вы должны указать им имя функции для вызова и указать любые аргументы. 'feval' называет' evalin' под капотом в этом случае, поэтому может быть немного более эффективным использовать его напрямую, но вы должны передать ему одну длинную строку. Немного [подробнее] (http://mathworks.com/help/symbolic/call-built-in-mupad-functions-from-the-matlab-command-window.html). – horchler