аргументы функции в Matlab - PullRequest
0 голосов
/ 25 марта 2012

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

функция Производная = производная (Matrix9x1, строковая переменная) конец

Как я могу сказать это Matlab? Я имею в виду, даже если пользователь вводит 1 в качестве второго аргумента, он должен обрабатываться как строка и пользователь должен иметь возможность ввести, например, омега

Ответы [ 2 ]

3 голосов
/ 25 марта 2012

Второй аргумент вашей функции будет обработан «как строка», только если он « равен строка», то есть если вы заключите его в одинарные кавычки.Если вы хотите передать число функции и превратить ее в строку для дальнейших операций, используйте функцию num2str.Если вы хотите написать функцию, которая выполняет различные действия в зависимости от типа второго аргумента, вам нужно будет протестировать этот тип при вызове функции;Возможно, вы захотите взглянуть на функции ischar, isstrprop, isnumeric и их отношения.

О, и не забывайте, что строка Matlab - это действительно массив символов, которыеэто просто удобный тип для целочисленных символов.

0 голосов
/ 25 марта 2012

Функции Matlab отличаются от функций языка программирования.Не то чтобы ваш пример на этих языках программирования тоже не работал.Передача целого числа в функцию, которая ожидает строку, выдаст вам ошибки компиляции.

Лучшей альтернативой в Matlab, о которой я могу подумать, будет проверка или преобразование второй входной переменной внутри функции.Может быть, это может помочь вам: http://www.mathworks.nl/help/techdoc/ref/typecast.html

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