找回密码
 注册
Simdroid-非首页
查看: 173|回复: 8

uigetfile命令的问题!

[复制链接]
发表于 2008-9-22 12:55:33 | 显示全部楼层 |阅读模式 来自 美国
我用uigetfile这个命令用来选读入的文件, 然后再进行处理读入的文件.

但是每次读入的文件的顺序都不是我要的顺序, 不知道这个是不是matlab的bug?

比如说我要读入按文件1,2,3,4读入,但是有时候读入后看变量里的顺序是1,3,4,2 了~不知道怎么回事. 请大家帮帮看看.
发表于 2008-9-22 13:41:24 | 显示全部楼层 来自 北京
Simdroid开发平台
最好把代码贴出来,这样容易看到问题
也便于交流,否则在一些问题上会有歧义
回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-23 08:42:07 | 显示全部楼层 来自 美国
好的.
*****************************************************************
function conbine_files()
clc;
clear;

[input_file,pathname] = uigetfile( ...
       {'*.txt', 'datafile (*.txt)'; ...
        '*.*', 'All Files (*.*)'}, ...
        'Select files', ...
        'MultiSelect', 'on');
inputfile=input_file';
   
if pathname == 0
    return
end   

szfile=size(inputfile);

A=[];
B=[];

for loop1=1:szfile(1,1)
    B=importdata(char(inputfile(loop1,1)));
    A=[A;B];
end

fid = fopen('combined_data.txt', 'w');
fprintf(fid, '%s \n',' ');
fclose(fid);

[b,c]= size(A);

for n=1:b
fid = fopen('combined_data.txt', 'a');
fprintf(fid, ' %8.1f %8.1f %8.1f %8.1f %8.1f %8.1f %8.1f %8.1f \n', A(n,1), A(n,2), A(n,3), A(n,4), A(n,5), A(n,6), A(n,7), A(n,8));
fclose(fid);
end

%Result=sprintf('The data file has been combined!')
h = helpdlg('The data files have been combined successfully!','Result');

*******************************************************************

比如说用uigetfile命令,我们可以选择要处理的文件,例如1,2,3,4. 但是问题是, 我按顺序选完之后,看变量,有时候会发现不是顺序处理,有时候会是2,3,1,4或者1,3,2,4. 不一定.
回复 不支持

使用道具 举报

发表于 2008-9-23 10:52:46 | 显示全部楼层 来自 北京
这个函数并没有明确说明文件选择后出现的顺序
我用你前半段程序试验的结果是,每次打开多个文件后
总是最后选择的那个文件出现在第一个,其它的顺序与选择的顺序相同
当顺序不同时,我发现matab还是把最后选择的文件放在第一个,其他的是按照字母的排列顺序
如a,b,c,d....m,n...这样的顺序来排列选择的文件的

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-24 00:34:46 | 显示全部楼层 来自 美国
谢谢ljelly.
这个会不会是MATLAB的BUG阿?
有什么方法让MATLAB按照我选择先后的顺序进行处理呢?
按照这个命令的特点重新改程序?

再次感谢。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-24 00:58:34 | 显示全部楼层 来自 美国
我又试了一下, 如果要看程序程序怎么处理的,可以看input_file这个变量。
我把文件名改了,在选择完后, 最后一个选择的的确是在第一个,但是, 读入后程序自动按照字母排列文件再进行处理的。

大家有什么建议, 让这个程序能按用户的选择文件的顺序来处理文件?
回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-26 11:09:30 | 显示全部楼层 来自 美国
还是没人回答.
我试了很多次,觉得这个命令在用户点击选择的的文件后,会自己再按字母顺序排列一次文件名, 然后按排列后的文件名的顺序处理文件. 这个会不会是个BUG.
回复 不支持

使用道具 举报

发表于 2008-9-26 12:15:57 | 显示全部楼层 来自 浙江杭州
问一句,你一次选择多少文件?选多了,你自己能记住选择的顺序吗?
回复 不支持

使用道具 举报

发表于 2011-1-18 15:56:05 | 显示全部楼层 来自 天津
uigetfile命令也困扰我,提取多个文件时,有时居然不运行(在我的笔记本上不运行,在台式机上却可以!!)
当提取的文件数小于50个时,最后的一个文件(按字符码自动排序)将窜到第1个(这个问题还好办),关键是最后一个文件的文件名读不全(大于50个时,我碰到都是-1).所以总是不得不忍心丢弃了最后一个文件.
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 03:23 , Processed in 0.058319 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表