Проблема редактора Matlab, ошибка? - PullRequest
0 голосов
/ 26 февраля 2012

У меня проблема с тем, что когда я запускаю приведенный ниже код на главном экране, matlab не доставляет мне проблем.

Однако, если я пишу это в редакторе, он жалуется, что это неверный синтаксис. Можете ли вы сказать мне, что я делаю неправильно или это ошибка?

Ques1 = { @(data) mean(data)  @(data) std(data) };
mean = Ques1 {1} (data(:,1)) # runs perfectly on the main compiler screen 

На моей странице редактора компиляторы жалуются на знак =, что возможная скобка отсутствует. Однако я не понимаю, почему он работает на компиляторе построчно Matlab !!

Ответы [ 3 ]

3 голосов
/ 26 февраля 2012

Эти две строки кода абсолютно верны.Где-то в вашем коде вы забыли открытую левую скобку, например [, {, (

2 голосов
/ 27 февраля 2012

РЕДАКТИРОВАТЬ Теперь Я понимаю, что говорил g24l! Да, это, вероятно, виновник вашей проблемы.

Не уверен, какую версию matlab вы используете, но когда я запускаю очень простой скрипт:

data = kron(1:25,transpose(1:25)); % very simple 2D matrix of data;

Ques1 = { @(data) mean(data)  @(data) std(data) };
mean1 = Ques1 {1} (data(:,1)) % runs perfectly on the main compiler screen

Отлично работает на R2007B и R2009B, вы используете более старую или более новую версию? Я подозреваю, что в вашем сценарии возникает другая проблема. Кроме того, следуя рекомендациям Mathworks по программированию, я бы рекомендовал вам , а не называть переменную или функцию с тем же именем, что и другая переменная или функция. В данном случае я имею в виду mean = .... Это легко запутать, а потом возникнут неприятные проблемы. Если вам нужна дополнительная помощь, пожалуйста, не стесняйтесь размещать больше вашего сценария. Надеюсь, это поможет!

0 голосов
/ 26 февраля 2012

В данный момент у меня нет доступа к Matlab, поэтому я не могу проверить это, но ваш синтаксис мне не подходит. Попробуйте это:

Ques1 = {@(data)mean, @(data)std};
mean = Ques1{1}(data(:,1))

Если вы запускаете его по-своему в отладчике, сколько элементов, по его словам, находится в вашем массиве ячеек?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...