Октавы возможность сохранения пути

#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. Отлично! Спасибо за помощь!