转载。。。哪儿 忘记了
由于要做的项目中涉及到数据处理,初涉及到matlab。今天需要把一组只用空格分开的数据读取到一个三维矩阵,然后对这个矩阵进行处理。
思路是:首先用importdata读入txt文件,形成一个一行N列的矩阵(N是数据个数),接下来通过size计算出矩阵的大小,其实也就是计算出数据的个数,然后算出一个K值,K=N/M(M是要形成的新矩阵的维数)接下来用reshape函数对于这个矩阵进行转换,转换成想要的规格(K行M列),这个地方要注意了,matlab读取数据是按照列的方向进行读取,所以我们这个时候要形成的是一个M行K列的矩阵,然后对这个矩阵进行转置才能得到我们想要的矩阵,以下是源码,例子中我要把数据转换成一个三维矩阵。
A=importdata(\'data.txt\');//读取txt文件到数组A中
[m,n]=size(A);//计算A的大小,此时m=1,n=数据个数
k=n/3;//计算出要形成新矩阵的行数用 总数据个数/新矩阵维数,本例中,M=3
B=reshape(A,3,k);//将A矩阵转换成3行K列的新矩阵
C=B\';//C矩阵为K行三列,就是最后要求的矩阵