2015-07-02 4 views
1

У меня есть следующий код:Странная ошибка с arrayfun

sample_density=[4;5]; 
Grid=arrayfun(@(x)linspace(0,2*pi,x),sample_density,'UniformOutput','off'); 

анонимная функция @(x)linspace(0,2*pi,x) работает отлично. Таким образом, выполнение кода с помощью цикла работает вручную. Но при выполнении приведенного выше кода возникает следующая ошибка:

Error using arrayfun 
All of the input arguments must be of the same size and shape. 
Previous inputs had size 2 in dimension 1. Input #3 has size 1 

Я не знаю, что означает сообщение. Кажется, что не существует способа найти, где срабатывает сообщение. Кто-нибудь знает, что такое «Вход №3»?

На лицевой стороне ситуация, описанная в сообщении, просто не соответствует действительности. Почему код не работает?

ответ

3

Вы получили пару имя-значение для 'UniformOutput' неправильно.

Аргумент является логическим (true или false), а не строка 'on' или 'off'. Должен работать следующий синтаксис:

sample_density=[4;5]; 
Grid=arrayfun(@(x)linspace(0,2*pi,x),sample_density,'UniformOutput',false); 
+0

Это сработало. Благодаря! – Argyll

Смежные вопросы