我有一个很短的脚本,我在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
,但也没有用。
答案 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));