#octave
#октава
Вопрос:
Мне любопытно узнать, как Octave обрабатывает пути к файлам.
В моем случае у меня есть папка, которая содержит другую папку с именем «indata», а затем фактический файл * .m, который я создал. Я не хочу, чтобы все файлы находились в одной папке, так как они содержат необработанные данные из множества тестов. И когда-нибудь я захочу вернуться и взглянуть на старые измерения.
Например. Я написал скрипт, который запрашивает у пользователя нужный файл для использования octave, который выглядит следующим образом:
prompt = {"Please specify the data you want to analyze"};
[fname,fpath] = uigetfile();
raw_indata = [fpath,fname];
при просмотре fname и fpath все правильно. Файл сохранен правильно. Если я посмотрю в «raw_indata», я получу полный путь к файлу. Отлично.
Проблема возникает уже сейчас…
DSR_data = xlsread('raw_indata');
Я пробовал
xlsread(«raw_indata»);
xlsread(fpath,fname);
что я упускаю … ??
Ответ №1:
DSR_data = xlsread('raw_indata');
вы указываете xls прочитать файл с именем «raw_indata». Буквально.
Вместо этого вы должны передавать raw_indata
переменную. Без кавычек.
DSR_data = xlsread(raw_indata);
Комментарии:
1. просто чтобы добавить объяснение для ваших двух других неудачных попыток ввода: использование двойных кавычек сделало то же самое, что Tasos объяснил выше. Для большинства целей символьные массивы в Octave одинаковы независимо от того, созданы ли они с помощью ‘ или «. Используя
xlsread(fpath,fname)
проходыfpath
иfname
как отдельные входные данные для xlsread, ожидая, что второй ввод укажет либо рабочий лист, либо диапазон данных. Если бы вы снова заключили входные данные в квадратные скобки, поскольку[fpath,fname]
это, вероятно, сработало бы, поскольку оно объединило бы две строки, как вы это делали при созданииraw_indata
, и передало их в качестве пути кxlsread
,2. Отлично! Спасибо за помощь!