0

我创建了一个 GUI 并使用 uiimport 将数据集导入 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);
4

2 回答 2

1

我认为您需要分配此语句的结果:

uiimport(file_input);

到一个变量,像这样

dataset = uiimport(file_input);

然后将其传递给您的下一个函数:

M = dlmread(dataset);

这是 Matlab 的一个非常基本的特性,它向我表明,阅读一些在线帮助和一些 Matlab 文档是很有价值的。完成后,您可能会找到更简洁、更快捷的方法。

编辑:好吧,@Tim,如果其他所有方法都失败了 RTFM。所以我做到了,我之前的答案是不正确的。您需要传递的dlmread是要读取的文件的名称。因此,您可以使用uiimportdlmread读取文件,但不能同时使用。您使用哪一个取决于您要执行的操作以及输入文件的格式。所以,去 RTFM,我也会这样做。如果您仍然遇到问题,请更新您的问题并提供文件内容的详细信息。

于 2010-04-25T10:25:07.560 回答
0

在您的脚本中,您可以通过三种方式读取文件。根据您的文件格式在其中选择一个。但首先我会将文件名与路径结合起来:

file_input = fullfile(pathname,file_input);

我不会在脚本中使用 UIIMPORT,因为用户可以更改读取数据的方式,并且变量名取决于文件名和用户。

使用DLMREAD,您只能从文件中读取数字数据。您还可以跳过一些行或列

M = dlmread(file_input,'\t',1,1);

跳过左侧的第一行和一列。或者,您可以定义一种 Excel 样式的范围。有关详细信息,请参阅 DLMREAD 文档。

传递给 DLMREAD 的文件名必须是字符串。不要传递文件句柄或任何数据。如果不是字符串,您将得到“文件名必须是字符串”。简单的。

FREAD从二进制文件中读取数据。如果您确实必须这样做,请参阅文档。

还有许多其他功能可以从文件中读取数据。如果您仍有问题,请向我们展示您的文件格式示例,以便我们建议最佳阅读方式。

于 2010-04-26T16:37:44.847 回答