Как загрузить указанный пользователем файл в Octave - PullRequest
0 голосов
/ 13 июня 2019

У меня очень короткий скрипт, который я запускаю в Octave, и я хочу прочитать указанный пользователем текстовый файл.Он работает на моем 64-разрядном ноутбуке, но не на моем 32-разрядном.Версия Octave - 3.2.2.

plotinfra.m

filename=uiputfile
data=load(filename);
plot(data(:,1),data(:,2));

На моем другом ноутбуке это вызывает меню файловой системы, где я могу выбрать конкретный файлзагрузить.На этом ноутбуке я вижу это сообщение об ошибке:

ошибка: файл uiputfile не определен рядом со строкой 1, столбец 19 ошибка: вызван из: ошибка: plotinfra.m в строке 1, столбец 17

Если я жестко закодировал filename с путем, он работает.Я также попытался использовать uigetfile, и это тоже не сработало.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Версия 3.2.2 Octave была выпущена в 2009 году . Когда я ввожу edit uiputfile в Octave, вверху файла я вижу строку:

## Copyright (C) 2010-2019 Kai Habel

Таким образом, похоже, что эта функция была создана после вашего выпуска Octave. По этой причине вы получаете сообщение об ошибке «uiputfile undefined».

Вам потребуется обновить свою версию Octave, чтобы использовать эту функцию.

0 голосов
/ 13 июня 2019

Я использую Ubuntu 18.04 64Bit Linux Octave 4.2.2, посмотрите, работает ли это для вас. Он сохранит имя файла в переменной file_name и путь к переменной в переменной path_dir

% create your dataset (exampledata) 
x = (-1:0.1:1); 
y = sin(x); 
data = zeros(length(x),2); 
data(:,1) = x; 
data(:,2) = y; 

% save data to file (your textfile) 
save('-ascii','data2.txt','data'); 

%load textfile 
%data2 = load('data2.txt'); %hard coded
[file_name,path_dir] = uigetfile('*.txt'); %pops up uibox choose data2.txt
data2 = load(strcat(path_dir,file_name)); %loads the file and the data

%plot data 
plot(data2(:,1),data2(:,2)); 
...