回 帖 发 新 帖 刷新版面

主题:将excel的数据倒入到matlab中再做变形

小弟正在写毕业论文,不巧对matlab实在不熟,但必须要用到,绕不开,现求助于各位,具体问题如下
在excel文件中有一列200个数据,现在有两个任务:
1.将这列数据倒入到matlab中,变成一个向量
2.将这个向量重新排列成一个m*n的矩阵,比如当n=5时,就有第一行为第1、2、3、4、5个数,第二行为第2、3、4、5、6个数,一次类推
谢谢各位阿

回复列表 (共6个回复)

沙发

先将excel的数据复制出来,可以放到文本里,也可以直接放到matlab里,matlab有函数直接变你想要的矩阵

板凳

reshape(A,m,n)


RESHAPE Change size.
    RESHAPE(X,M,N) returns the M-by-N matrix whose elements
    are taken columnwise from X.  An error results if X does
    not have M*N elements.

3 楼


1.用import工具导入数据并定义到变量aa,或者readxls读取
2.a=zeros(m,n);
  for i=1:m
      a(i,:)=aa(i:i+n-1);

  end

4 楼

晕,xlsread就OK

5 楼

很简单的了
完整的程序如下:
function P=xlsfun(m,n)
x=xlsread('data.xls');
if m*n==200,
    for i=1:m,
        P(i,:)=x(i:(i+n));
    end
else
    errordlg('m*n must be 200!','Info');
end
然后调用就可以了,注意的就是如果你的文件名不是data.xls的话,这里要改的和你的文件名一样的啊。
>> p=xlsfun(40,5);
data.xls中的数据如下:
0.8147
0.9058
0.127
0.9134
0.6324
0.0975
0.2785
0.5469
0.9575
0.9649
0.1576
0.9706
0.9572
0.4854
0.8003
0.1419
0.4218
0.9157
0.7922
0.9595
0.6557
0.0357
0.8491
0.934
0.6787
0.7577
0.7431
0.3922
0.6555
0.1712
0.706
0.0318
0.2769
0.0462
0.0971
0.8235
0.6948
0.3171
0.9502
0.0344
0.4387
0.3816
0.7655
0.7952
0.1869
0.4898
0.4456
0.6463
0.7094
0.7547
0.276
0.6797
0.6551
0.1626
0.119
0.4984
0.9597
0.3404
0.5853
0.2238
0.7513
0.2551
0.506
0.6991
0.8909
0.9593
0.5472
0.1386
0.1493
0.2575
0.8407
0.2543
0.8143
0.2435
0.9293
0.35
0.1966
0.2511
0.616
0.4733
0.3517
0.8308
0.5853
0.5497
0.9172
0.2858
0.7572
0.7537
0.3804
0.5678
0.0759
0.054
0.5308
0.7792
0.934
0.1299
0.5688
0.4694
0.0119
0.3371
0.1622
0.7943
0.3112
0.5285
0.1656
0.602
0.263
0.6541
0.6892
0.7482
0.4505
0.0838
0.229
0.9133
0.1524
0.8258
0.5383
0.9961
0.0782
0.4427
0.1067
0.9619
0.0046
0.7749
0.8173
0.8687
0.0844
0.3998
0.2599
0.8001
0.4314
0.9106
0.1818
0.2638
0.1455
0.1361
0.8693
0.5797
0.5499
0.145
0.853
0.6221
0.351
0.5132
0.4018
0.076
0.2399
0.1233
0.1839
0.24
0.4173
0.0497
0.9027
0.9448
0.4909
0.4893
0.3377
0.9001
0.3692
0.1112
0.7803
0.3897
0.2417
0.4039
0.0965
0.132
0.9421
0.9561
0.5752
0.0598
0.2348
0.3532
0.8212
0.0154
0.043
0.169
0.6491
0.7317
0.6477
0.4509
0.547
0.2963
0.7447
0.189
0.6868
0.1835
0.3685
0.6256
0.7802
0.0811
0.9294
0.7757
0.4868
0.4359
0.4468
0.3063
0.5085
0.5108
0.8176
0.7948

6 楼

调用如下:
>> p=xlsfun(40,5);
>> p

p =

    0.8147    0.9058    0.1270    0.9134    0.6324    0.0975
    0.9058    0.1270    0.9134    0.6324    0.0975    0.2785
    0.1270    0.9134    0.6324    0.0975    0.2785    0.5469
    0.9134    0.6324    0.0975    0.2785    0.5469    0.9575
    0.6324    0.0975    0.2785    0.5469    0.9575    0.9649
    0.0975    0.2785    0.5469    0.9575    0.9649    0.1576
    0.2785    0.5469    0.9575    0.9649    0.1576    0.9706
    0.5469    0.9575    0.9649    0.1576    0.9706    0.9572
    0.9575    0.9649    0.1576    0.9706    0.9572    0.4854
    0.9649    0.1576    0.9706    0.9572    0.4854    0.8003
    0.1576    0.9706    0.9572    0.4854    0.8003    0.1419
    0.9706    0.9572    0.4854    0.8003    0.1419    0.4218
    0.9572    0.4854    0.8003    0.1419    0.4218    0.9157
    0.4854    0.8003    0.1419    0.4218    0.9157    0.7922
    0.8003    0.1419    0.4218    0.9157    0.7922    0.9595
    0.1419    0.4218    0.9157    0.7922    0.9595    0.6557
    0.4218    0.9157    0.7922    0.9595    0.6557    0.0357
    0.9157    0.7922    0.9595    0.6557    0.0357    0.8491
    0.7922    0.9595    0.6557    0.0357    0.8491    0.9340
    0.9595    0.6557    0.0357    0.8491    0.9340    0.6787
    0.6557    0.0357    0.8491    0.9340    0.6787    0.7577
    0.0357    0.8491    0.9340    0.6787    0.7577    0.7431
    0.8491    0.9340    0.6787    0.7577    0.7431    0.3922
    0.9340    0.6787    0.7577    0.7431    0.3922    0.6555
    0.6787    0.7577    0.7431    0.3922    0.6555    0.1712
    0.7577    0.7431    0.3922    0.6555    0.1712    0.7060
    0.7431    0.3922    0.6555    0.1712    0.7060    0.0318
    0.3922    0.6555    0.1712    0.7060    0.0318    0.2769
    0.6555    0.1712    0.7060    0.0318    0.2769    0.0462
    0.1712    0.7060    0.0318    0.2769    0.0462    0.0971
    0.7060    0.0318    0.2769    0.0462    0.0971    0.8235
    0.0318    0.2769    0.0462    0.0971    0.8235    0.6948
    0.2769    0.0462    0.0971    0.8235    0.6948    0.3171
    0.0462    0.0971    0.8235    0.6948    0.3171    0.9502
    0.0971    0.8235    0.6948    0.3171    0.9502    0.0344
    0.8235    0.6948    0.3171    0.9502    0.0344    0.4387
    0.6948    0.3171    0.9502    0.0344    0.4387    0.3816
    0.3171    0.9502    0.0344    0.4387    0.3816    0.7655
    0.9502    0.0344    0.4387    0.3816    0.7655    0.7952
    0.0344    0.4387    0.3816    0.7655    0.7952    0.1869

我来回复

您尚未登录,请登录后再回复。点此登录或注册