sujunzy666 发表于 2011-5-25 19:08

关于matlab矩阵的问题请教

我最近在做人脸识别,需要提取大量样本的特征,大概需要100000*100000大小的矩阵来存储,
请看下面
>>clear
tic
A=sparse(1e7,1e7);
whos A
toc
Name             Size                     BytesClass   Attributes

A         10000000x10000000            40000016double    sparse   

Elapsed time is 0.001623 seconds.
按理说既然能分配这么大的空间,为什么不能存这么大的矩阵,如下
>>clear
tic
A=rand(1e7,1e7);
whos A
toc
??? Error using ==> rand
Maximum variable size allowed by the program is exceeded.
请这里的各路神仙指点一二

ChaChing 发表于 2011-5-25 23:27

若是我,可能用时间换取空间!

qibbxxt 发表于 2011-5-26 08:51

lz,可以先了解一下稀疏矩阵

zhouyang664 发表于 2011-5-29 18:13

所谓稀疏矩阵,并不是每个点都存储,它只是按照某种方式存储非零点。而稀疏矩阵中的非零点一般很少,所以是可以存储的。你这个rand是每个点都存储,1e7*1e7这么大的空间,这个就不一定行了...
页: [1]
查看完整版本: 关于matlab矩阵的问题请教