Есть ли способ использовать команду dir в функции в MATLAB. Я хочу принять аргумент в художественной литературе, и этот аргумент будет частью команды dir, например,

function a = abc(num)
    aaa=dir('abc_num_*.csv);
end

Я получаю сообщение об ошибке при выполнении этого, поскольку num принимается в качестве аргумента, не входит в функцию dir. Есть ли способ сделать это?

2 ответа2

0

Во всех языках программирования и написания сценариев, в которые я заглянул, что-то внутри пары кавычек, как в словах "в кавычках" и "также в кавычках", было буквальным текстом - никогда не менялось.

Таким образом, вы могли бы сделать ставку на то, что 'abc_'+str(num)+'_*.csv' или аналогичная конструкция будет работать для вас.
Обратите внимание, что str(num) часто используется как метод для преобразования числового значения в поток символов. Такие «строки» могут быть добавлены / добавлены друг к другу, например, с помощью + или подобным.

0

Есть способ использовать аргумент:

function a = abc(num)
    aaa = dir(['abc_' num2str(num) '_*.csv']);
    a = aaa.name;
end
  • Используйте [] для объединения строк. Подстановочный знак * работает.
  • Используйте num2str для преобразования числа в строку.
  • Не забудьте проверить, существует ли структура aaa прежде чем получать ее поле name , например, с помощью условия if length(aaa >= 1) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .