Ошибка: определения функций в этом контексте запрещены. Matlab [дубликат]

Свойство «Module» контроллера View в Identity Inspector может отличаться от ожидаемого. Также убедитесь, что новые классы добавлены в ваш целевой список.

-2
задан Santhan Salai 20 May 2015 в 09:05
поделиться

1 ответ

Удалите из своего скрипта следующую часть и сохраните ее в файле с именем english2morse.m:

function [output] = english2morse(text)

% Where a = 1, b = 2, c = 3 ...                                                                                                                                                                            space     numberals start here... 0 - 9                                                       specials characters start here: in this order| begining     . , ? ! : " ' =       end                                                                                                                                                                                                                   
definitions = {' .-' ' -...' ' -.-.' ' -..' ' .' ' ..-.' ' --.' ' ....' ' ..' ' .---' ' -.-' ' .-..' ' --' ' -.' ' ---' ' .--.' ' --.-' ' .-.' ' ...' ' -' ' ..-' ' ..-' ' .--' ' -..-' ' -.--' ' --..' '        '   '-----' '.----' '..---' '...--' '....-' '.....' '-....' '--...' '---..' '----.'     '.-.-.-' '--..--' '..--..' '..--.' '---...' '.-..-.' '.----.' '-...-'};


output = definitions(text);
end

Сохраните сценарий после удаления, сохраните функцию после редактирования, запустите сценарий еще раз.

Объяснение: MATLAB делает разницу между функциями и скриптами .

Файл кода MATLAB, в котором первый комментарий отсутствует ключевое слово function является (неожиданностью!) функцией, то есть куском кода, который обычно вызывается для некоторого ввода, возвращает некоторый результат на основе этого и делает некоторые вещи между ними. Все входы, выходы и временные данные создаются в рабочей области функции самостоятельно, каждый раз, когда вызывается функция.

Файл, который, кроме возможных комментариев, не является начинать с function (или classdef) является сценарием и предназначен для немедленного выполнения, используя любые данные, доступные в глобальном рабочем пространстве , и сохранение его выходов в одном и том же глобальном рабочем пространстве.

Теперь MATLAB не хочет смешивать определения функций со сценариями. Вот почему функция должна быть в собственном файле, а скрипт в собственном файле.

5
ответ дан user 22 August 2018 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: