Прежде всего следует отметить, что char
вектор и string
* разные вещи в Matlab.Тип данных string
был введен недавно (я думаю, в R2016b).Предыдущие версии не поддерживают тип string
, только char
векторы.
Поскольку был введен тип данных string
, многие встроенные функции, которые раньше принимали char
векторный ввод, теперь могут приниматьstring
вход также.Но это, очевидно, постепенно включается в функции.Таким образом, даже если ваша версия Matlab поддерживает тип данных string
, вы можете найти некоторые функции, которые все еще могут принимать только вектор char
в качестве входных данных.Это похоже на случай dir
в вашей версии.В R2018b dir
поддерживает оба типа ввода, в соответствии с документацией .
Итак, вам нужно определить вход для dir
как вектор char
.Для этого вы используете '
вместо "
:
strLocation = 'C:\Users\myname\Documents\MATLAB';
listing = dir(strLocation)
Или, если вам нужна строка, преобразуйте ее в вектор char
перед передачей ее в dir
:
strLocation = "C:\Users\myname\Documents\MATLAB";
listing = dir(char(strLocation))