Преобразование массивов строк в массивы символов, оставляя другие массивы неизменными
При работе с собственным кодом можно использовать convertStringsToChars чтобы код принимал строковые входные данные. Тогда вам не придется вносить какие-либо другие изменения в код, написанный для работы с массивами символов.
[B1,...,Bn] = convertStringsToChars(A1,...,An) преобразует любые строковые массивы в A1,...,An в символьные векторы или массивы ячеек символьных векторов, а затем возвращает их в качестве соответствующих выходных аргументов в B1,...,Bn. Если какой-либо из аргументов A1,...,An имеет любой другой тип данных, то convertStringsToChars возвращает его без изменений.
Чтобы разрешить существующему коду принимать массивы строк в качестве входных данных, добавьте вызов convertStringsToChars в начале кода.
Например, если определена функция myFunc который принимает три входных аргумента, обрабатывает все три ввода, используя convertStringsToChars. Оставьте остальную часть кода без изменений.
function y = myFunc(a,b,c)
[a,b,c] = convertStringsToChars(a,b,c);
<line 1 of original code>
<line 2 of original code>
...В этом примере выходные аргументы [a,b,c] перезаписать имеющиеся входные аргументы. Если какой-либо входной аргумент не является строковым массивом, он не изменяется.
Если myFunc принимает переменное количество входных аргументов, затем обрабатывает все аргументы, указанные varargin.
function y = myFunc(varargin)
[varargin{:}] = convertStringsToChars(varargin{:});
... convertStringsToChars функция более эффективна при преобразовании одного входного аргумента. Если речь идет о производительности, вызовите convertStringsToChars на одном входном аргументе за один раз, а не на нескольких входах.
convertCharsToStrings | convertContainedStringsToChars | iscellstr | ischar | ismissing | isstring | isStringScalar | string | varargin