24小时热门版块排行榜    

CyRhmU.jpeg
查看: 610  |  回复: 5
当前主题已经存档。

lchuahp

木虫 (小有名气)

[交流] 【求助】数据导入函数uigetfile的使用问题

使用数据导入函数uigetfile的MultiSelect多个数据导入功能时,发现能够导入的数据名称和数据个数有限制,数据名称越长则数据个数就越少,好像数据名称的长度和导入数据个数之间的乘积有一个上限值,超过这个上限值了就会报错。这样的话数据多了就得分批次导入处理,感觉挺麻烦的。不知各位高手有没有更好的解决办法,敬请赐教,万分感谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

我写了下面一段程序来多选文件名,该程序可以返回当前文件夹下的
所有文件(如果你的数据文件在其他路径你更改一下路径即可)。
a=dir; % a=dir(path); % 更改路径
An=char(a.name);
An(1:2,=[];
Aname=[];
for k=1:size(An,1)-1;
    Aname=[Aname,An(k,,'|'];
end
Aname=[Aname,An(end,];
po1=uicontrol(gcf,'style','listbox',...
    'unit','normalized','position',[0.2,0.2,0.2,0.4],...
    'string',Aname,'max',size(An,1),...
    'fontsize',10,'callback',['nn=get(po1,''Value'');',...
        'As=An(nn,']);
% 其中As是被选文件的名字
tx1=uicontrol(gcf,'style','text',...
    'unit','normalized','position',[0.17,0.65,0.26,0.06],...
    'string','Please select your files','ForegroundColor','r',...
    'fontsize',10);


% 附图是执行效果图
2楼2009-09-09 10:10:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lchuahp(金币+10,VIP+0):谢谢! 9-9 20:27
把M文件和txt文件压缩传一下,如附件
3楼2009-09-09 10:16:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lchuahp

木虫 (小有名气)

非常感谢您的帮助!

不过,我用您的代码无法将数据导入到内存中。
我主要是想将一系列的数据导入到内存中,然后对导入的这些数据处理。

下面的一段代码可以实现数据的导入:

clear;clc;close all;
%读取数据文件
[filename, pathname, s] = uigetfile( ...
    {'*.csv;*.txt',  '数据文件(*.csv,*.txt)';...
    '*.*',           'All Files (*.*)'}, ...
    '选择数据文件',  'MultiSelect', 'on')
filecount = size(filename);%filecount(2)中保存的是导入的数据个数
data = [];
for i=1:filecount(2)
    data_in = importdata([pathname filename{i}])
    data = [data data_in];
end

但是,这段代码在导入数据文件较少时还能正常运行,可是选择导入的文件数目(视文件名长短的不同,文件名越长能够导入的文件数目就会越少)一多就出现问题了,会显示以下错误提示:

??? Cell contents reference from a non-cell array object.

Error in ==> data_import at 11
    data_in = importdata([pathname filename{i}])

附件里是M文件和一些TXT文件,运行时选择的TXT文件数目少就能正常,如果选择的多(全选)就会有错误。

不知道是不是uigetfile这个函数本身的限制,如果想将大量的数据一次性导入到内存中去,有没有其他更好的方法?

再次感谢!
4楼2009-09-09 20:27:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lchuahp(金币+10,VIP+0):是版本的问题,用了MATLAB2008a后问题解决,谢谢! 9-15 08:57
nono2009(金币+5,VIP+0):谢谢交流!欢迎常来。 9-20 16:59
我试过你的附件内容了,我这里没问题啊(MATLAB2008a)。我选定的是
所有文件,这个是不是例子?
方便的话把你的程序有问题的部分发给我(包括数据文件)
zjliu2001@163.com
5楼2009-09-10 07:38:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

04110241

木虫 (小有名气)

数据导入,记号一下。
6楼2009-09-14 08:49:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lchuahp 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见