雄鹰飞翔 发表于 2009-9-8 08:56

MATLAB数据导入

这个里面介绍了一些如何把外部数据导入MATLAB

zdshitiaogou 发表于 2009-9-8 09:10

下来看啊看

liwei141129 发表于 2009-9-8 09:22

下来看啊看

may11z 发表于 2009-9-8 09:36

好东西~~~~下载看看~

my-math 发表于 2009-9-8 10:05

收藏之!!!!

ykl126 发表于 2009-9-8 10:14

缺乏这个东西类

bluetian 发表于 2009-9-8 10:21

一 将excel数据导入

直接将下面三句话导入
= uigetfile('*.xls');    %寻找源文件
file=;                    %赋名
x=xlsread(file);                             %格式转换为矩阵
之后就用x来代表导入的这个矩阵。
如excel 里输入了 1 2 3
                  4 5 6
如下命令
x(1,:)
ans =

      1      2      3


二 txe文件导入


假定名为 test.txt 的文件中以下为文件内容
"
你好,我的数据
欢迎来到
动力学与控制技术论坛
www.dytrol.com
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
"
这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。

方法一:

在文件菜单中选择 file/import data,按照提示进行操作至结束。
在 command 窗口中输入
>> whos
Name            Size                    Bytes   Class

data            5x4                       160   double array
textdata        4x1                       300   cell array

Grand total is 54 elements using 460 bytes

>> data

data =

           1           11          111         1111
           2           22          222         2222
           3           33          333         3333
           4           44          444         4444
           5           55          555         5555

>> textdata

textdata =

    '你好'
    '欢迎来到'
    '动力学与控制技术论坛'
    'www.dytrol.com'

方法二:

=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和对应。
>> =textread('test1.txt','%s%s%s%s','headerlines',4)

a1 =

    '1'
    '2'
    '3'
    '4'
    '5'


a2 =

    '11'
    '22'
    '33'
    '44'
    '55'


a3 =

    '111'
    '222'
    '333'
    '444'
    '555'


a4 =

    '1111'
    '2222'
    '3333'
    '4444'
    '5555'
因以字符串的形式读入,所以有''。

文件内容形式二(假定文件名为test2.txt):

你好
1 11 111 1111
欢迎来到
2 22 222 2222
动力学与仿真控制论坛
3 33 333 3333
www.dytrol.com
4 44 444 4444
5 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

以下是由chinamaker编写的一种方法:
fidin=fopen('test2.txt');                 % 打开test2.txt文件            
fidout=fopen('mkmatlab.txt','w');               % 创建MKMATLAB.txt文件
while ~feof(fidin)                              % 判断是否为文件末尾      
    tline=fgetl(fidin);                             % 从文件读行   
    if double(tline(1))>=48&&double(tline(1))<=57   % 判断首字符是否是数值
       fprintf(fidout,'%s\n\n',tline);   % 如果是数字行,把此行数据写入--

                                         %--文件MKMATLAB.txt
       continue                          % 如果是非数字继续下一次循环
    end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt');       % 将生成的MKMATLAB.txt文件导入工作--

                                     %-空间,变量名为MK,实际上它不显示出来
>> MK

MK =

           1           11          111         1111
           2           22          222         2222
           3           33          333         3333
           4           44          444         4444
           5           55          555         5555

另外有一个小程序

数据文件处理小程序
程序作者:黄文宇博士整理:龚建伟在实验中,处理记录数据文件是经常要做的,而用Matlab来处理是我最推崇的,方便快捷,数据文件格式任意设置,均可处理,如用下面格式保存的数据文本data.txt,用Matlab来处理,用黄文宇博士这个小程序做来非常容易,而且处理后得到的图形可直接Copy到各种需要的文件中。

data.txt文件:

......

d+00005.00;v+00001.92;e+00003.08;u-0016;m+1004;t+0286;

d+00005.00;v+00002.06;e+00002.94;u-0041;m+0988;t+0287;

d+00005.00;v+00002.19;e+00002.81;u-0040;m+0947;t+0288;

d+00005.00;v+00002.31;e+00002.69;u-0033;m+0907;t+0289;

d+00005.00;v+00002.39;e+00002.61;u-0024;m+0874;t+0290;

d+00005.00;v+00002.47;e+00002.53;u-0024;m+0850;t+0291;

d+00005.00;v+00002.56;e+00002.44;u-0025;m+0826;t+0292;

d+00005.00;v+00002.61;e+00002.39;u-0016;m+0801;t+0293;

d+00005.00;v+00002.69;e+00002.31;u-0024;m+0785;t+0294;

d+00005.00;v+00002.72;e+00002.28;u-0007;m+0761;t+0295;

.....

 处理函数readprocess

function readprocess(file)

fid=fopen(file,'rt');

if(fid==-1)

display('File not exist!');

return;

end

array=[];

while(~feof(fid))

str=fscanf(fid,'%s',1);

if(length(str)>10)

%d+00005.00;v+00002.72;e+00002.28;u-0007;m+0761;t+0295;

col=sscanf(str,'d%f;v%f;e%f;u%f;m%d;t%d;');

array=;

end

end

fclose(fid);

dhead=array(1,:);

head=array(2,:);

'r:',t,head,'b-');

运行环境,Matlab5X

ouyabinbin 发表于 2009-9-8 10:25

:victory:谢谢·分享····

zhongting 发表于 2009-9-8 19:53

谢谢楼主哈,正在找呢

zhangxu90 发表于 2009-9-8 19:59

喜。。。谢谢了。
页: [1] 2 3
查看完整版本: MATLAB数据导入