我创建了一个GUI并使用uimport将数据集导入matlab工作区,我想将这个导入的数据传递给matlab中的另一个函数...如何将这个导入的数据集传递给另一个函数....我试过了做diz ...但它无法选择diz ....它没有选择matlab工作区上的数据....任何想法??
[file_input, pathname] = uigetfile( ...
{'*.txt', 'Text (*.txt)'; ...
'*.xls', 'Excel (*.xls)'; ...
'*.*', 'All Files (*.*)'}, ...
'Select files');
uiimport(file_input);
M = dlmread(file_input);
X = freed(M);
答案 0 :(得分:1)
我认为您需要分配此声明的结果:
uiimport(file_input);
变量,如此
dataset = uiimport(file_input);
然后将其传递给下一个函数:
M = dlmread(dataset);
这是Matlab的一个非常基本的功能,它向我建议你会发现阅读一些在线帮助和Matlab的一些文档很有价值。当你这样做时,你可能会找到更简洁,更快捷的方法。
编辑:嗯,@ Tim,如果所有其他方法都无法通过RTFM。所以我做了,我之前的回答是不正确的。您需要传递给dlmread
的是要读取的文件的名称。因此,您可以使用uiimport
或dlmread
来读取文件,但不能同时使用两者。您使用哪一个取决于您要执行的操作以及输入文件的格式。所以,去RTFM,我也会这样做。如果您仍然遇到问题,请更新您的问题并提供该文件内容的详细信息。
答案 1 :(得分:0)
在您的脚本中,您有三种方法来读取文件。根据您的文件格式选择一个。但首先我要将文件名与路径组合:
file_input = fullfile(pathname,file_input);
我不会在脚本中使用UIIMPORT,因为用户可以改变读取数据的方式,变量名取决于文件名和用户。
使用DLMREAD,您只能从文件中读取数值数据。您还可以使用
跳过一些行或列M = dlmread(file_input,'\t',1,1);
跳过左边的第一行和一列。 或者,您可以定义Excel样式的范围。有关详细信息,请参阅DLMREAD文档。
传递给DLMREAD的文件名必须是字符串。不要传递文件句柄或任何数据。如果它不是字符串,您将获得“Filename必须是字符串”。容易。
FREAD从二进制文件中读取数据。如果你真的必须这样做,请参阅文档。
还有许多其他功能可以从文件中读取数据。如果您仍有问题,请向我们展示您的文件格式示例,以便我们建议您阅读它的最佳方式。