NaN
NaN

Reputation: 691

How to load a user specified file in Octave

I have a very short script that I'm running in Octave and I want to read a user specified text file. It works on my 64-bit laptop, but not on my 32-bit one. The Octave version is 3.2.2.

plotinfra.m

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

On my other laptop, this brings up a filesystem menu where I can choose the specific file to load. On this laptop, I see this error message instead:

error: uiputfile undefined near line 1 column 19 error: called from: error: plotinfra.m at line 1, column 17

If I hardcode filename with a path it works. I also tried using uigetfile and that did not work either.

Upvotes: 0

Views: 864

Answers (2)

Cris Luengo
Cris Luengo

Reputation: 60504

Version 3.2.2 of Octave was released in 2009. When I enter edit uiputfile in Octave, at the top of the file I see the line:

## Copyright (C) 2010-2019 Kai Habel

Thus, it seems that this function was created after your release of Octave. This is the reason you get a "uiputfile undefined" error message.

You will have to upgrade your version of Octave to use this function.

Upvotes: 1

Rick T
Rick T

Reputation: 3389

I'm using Ubuntu 18.04 64Bit Linux Octave 4.2.2 see if this works for you. It will store the filename in the variable file_name and the path location in the variable 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)); 

Upvotes: 0

Related Questions