如何在应用程序设计器中使用MATLABs uipickfiles函数?

yyhrrdl8  于 2023-08-06  发布在  Matlab
关注(0)|答案(1)|浏览(164)

我正试图(很差)在MATLAB应用程序设计器中编写一个应用程序,它可以在包含可变数量文本文件的几个文件夹中读取。
我偶然发现了uipickfiles,想知道是否有人有使用它的经验?目前,我的应用程序有一个ButtonPushed回调,它调用uipickfiles,然后允许用户选择他们希望使用的文件夹。然而,当我看到返回的内容时,它是例如。- 如果只选择了一个文件夹-包含文件夹路径的1x 1单元格。
我想知道是否有可能操作它来创建一个回调函数,该回调函数也读取文件夹中所有文本文件的内容,并将其存储为mxn表或矩阵?
我试过在一个文件夹中使用readtable或readmatrix的不同变体,即使只有一个文件也无济于事。我一直得到一个错误-“文件名”必须是一个字符串标量或字符向量。但我不知道如何让应用程序做我想做的。
任何帮助都将不胜感激

9cbw7uwe

9cbw7uwe1#

uipickfile只会为你做一部分。它将返回您选择的文件夹(而不是它们的内容)。
您可以添加一些额外的代码来获取文件夹内容,例如使用通配符匹配来获取txt文件

folders = uipickfiles('num',[]);  %Get an unlimited number of folder selections
filter = '\*.slx';

file_contents = struct;

for i=1:length(folders)
   current_folder = folders{i};
   text_files_contained = dir([current_folder filter]);
   file_contents(i).folder_path = current_folder;
   file_contents(i).files = {text_files_contained.name};
end

字符串

相关问题