如何在八度中加载用户指定的文件

时间:2019-06-13 16:30:48

标签: octave

我有一个很短的脚本,我在Octave中运行,我想读取用户指定的文本文件。它可以在我的64位笔记本电脑上使用,但不能在我的32位笔记本电脑上使用。八度版本是3.2.2。

plotinfra.m

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

在另一台笔记本电脑上,这会弹出一个文件系统菜单,在这里我可以选择要加载的特定文件。在这台笔记本电脑上,我看到此错误消息:

  

错误:第1行第19列附近的uiputfile未定义错误:调用者:错误:第1行第17列的plotinfra.m

如果我使用路径对filename进行硬编码,它将起作用。我也尝试使用uigetfile,但也没有用。

2 个答案:

答案 0 :(得分:1)

Version 3.2.2 of Octave was released in 2009。当我在Octave中输入edit uiputfile时,在文件顶部,我看到以下行:

## Copyright (C) 2010-2019 Kai Habel

因此,似乎此功能是在Octave发布后 创建的。这就是您收到“未定义uiputfile”错误消息的原因。

要使用此功能,您将必须升级Octave版本。

答案 1 :(得分:0)

我正在使用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));