File 八度选择一个文件?
Octave有让用户选择输入文件的好方法吗?我在Matlab中见过这样的代码,但在倍频程中不起作用 最好使用基于gui的方法,但也可以选择某种命令行。这将是伟大的,如果有一些方法来做到这一点,将在Matlab和倍频程工作 我找到了Matlab,但它在Octave中不起作用,即使在为listdlg函数安装Java包时也是如此。在倍频程中,dir()为您提供:File 八度选择一个文件?,file,openfiledialog,octave,File,Openfiledialog,Octave,Octave有让用户选择输入文件的好方法吗?我在Matlab中见过这样的代码,但在倍频程中不起作用 最好使用基于gui的方法,但也可以选择某种命令行。这将是伟大的,如果有一些方法来做到这一点,将在Matlab和倍频程工作 我找到了Matlab,但它在Octave中不起作用,即使在为listdlg函数安装Java包时也是如此。在倍频程中,dir()为您提供: 647x1 struct array containing the fields: name date byt
647x1 struct array containing the fields:
name
date
bytes
isdir
datenum
statinfo
但我不知道如何将其转换为listdlg期望的字符串数组。我从未遇到过八度打开的文件对话框。
如果您正在寻找一种基于gui的方法,可能会对您有所帮助。我从未使用过它,因为它似乎只适用于windows计算机
一个可能的解决方案是在octave中编写一个小脚本,允许用户解析目录并选择这样的文件。我从未在octave中遇到过打开的文件对话框。
如果您正在寻找一种基于gui的方法,可能会对您有所帮助。我从未使用过它,因为它似乎只适用于windows计算机 一个可能的解决方案是用octave编写一个小脚本,允许用户解析目录并选择这样的文件。您已经安装了,因此可以创建任何java类的实例并调用任何java方法 例如,要创建
JFileChooser
并调用JFileChooser.showOpenDialog(组件父级)
方法:
frame = javaObject("javax.swing.JFrame");
frame.setBounds(0,0,100,100);
frame.setVisible(true);
fc = javaObject ("javax.swing.JFileChooser")
returnVal = fc.showOpenDialog(frame);
file = fc.getSelectedFile();
file.getName()
顺便说一句,我在安装软件包时遇到了一些麻烦。
这里是Ubuntu的一个例子。这也适用于我的Debian测试
编辑
@NoBugs回复您的评论:
如果需要使用listdlg,可以执行以下操作:
d = dir;
str = {d.name};
[sel,ok] = listdlg('PromptString','Select a file:',...
'SelectionMode','single',...
'ListString',str);
if ok == 1
disp(str{sel(1)});
end
这应该与matlab兼容,因为我现在无法测试它
如果要选择多个文件,请使用以下选项:
d = dir;
str = {d.name};
[sel,ok] = listdlg('PromptString','Select a file:',...
'SelectionMode','multiple',...
'ListString',str);
if ok == 1
imax = length(sel);
for i=1:1:imax
disp(str{sel(i)});
end
end
您已经安装了,因此可以创建任何java类的实例并调用任何java方法
例如,要创建JFileChooser
并调用JFileChooser.showOpenDialog(组件父级)
方法:
frame = javaObject("javax.swing.JFrame");
frame.setBounds(0,0,100,100);
frame.setVisible(true);
fc = javaObject ("javax.swing.JFileChooser")
returnVal = fc.showOpenDialog(frame);
file = fc.getSelectedFile();
file.getName()
顺便说一句,我在安装软件包时遇到了一些麻烦。
这里是Ubuntu的一个例子。这也适用于我的Debian测试
编辑
@NoBugs回复您的评论:
如果需要使用listdlg,可以执行以下操作:
d = dir;
str = {d.name};
[sel,ok] = listdlg('PromptString','Select a file:',...
'SelectionMode','single',...
'ListString',str);
if ok == 1
disp(str{sel(1)});
end
这应该与matlab兼容,因为我现在无法测试它
如果要选择多个文件,请使用以下选项:
d = dir;
str = {d.name};
[sel,ok] = listdlg('PromptString','Select a file:',...
'SelectionMode','multiple',...
'ListString',str);
if ok == 1
imax = length(sel);
for i=1:1:imax
disp(str{sel(i)});
end
end
我想我会为这个老问题提供一个更新的答案,因为它出现在其他问题的“相关问题”字段中
Octave提供了
uigetdir
和uigetfile
函数,它们可以实现您所期望的功能。我想我应该为这个旧问题提供一个更新的答案,因为它出现在其他问题的“相关问题”字段中
Octave提供了
uigetdir
和uigetfile
函数,它们可以实现您所期望的功能。在基于GUI的方法中“好”与在基于GUI的方法中“好”?如果您安装Octaveforge Java包,Matlab可以使用Listdlg提示输入文件:,Octave还具有Listdlg。但是,我无法使用Matlab示例代码让它提示输入文件。如果安装Octaveforge Java包,Matlab可以使用Listdlg提示输入文件:,Octave也有Listdlg。然而,我还不能用Matlab示例代码让它提示输入一个文件。很棒的代码!在Ubuntu和编译的Octave 3.4.2上,即使没有那个补丁,它对我来说也很好。然而,我正在寻找类似于链接的Matlab代码的代码,要求用户使用listdlg在当前目录中选择一个文件。兼容性,或与Matlab的最小差异,将是一个巨大的优势。伟大的代码!在Ubuntu和编译的Octave 3.4.2上,即使没有那个补丁,它对我来说也很好。然而,我正在寻找类似于链接的Matlab代码的代码,要求用户使用listdlg在当前目录中选择一个文件。兼容性,或与Matlab的最小差异,将是一个很大的优势。