细胞mat-file

38视图(30天)
Maciek
Maciek 2015年5月10日
回答: 1月 2015年5月10日
据我所知部分加载与MAT-file不支持细胞类的一个变量。万博1manbetx我的问题是如果存在某种程度的部分负荷细胞大小1 x n

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2015年5月10日
Mathworks专门文件,你不能做一个单元阵列的部分负荷。
你必须打破单元阵列到matfile变量存储的时候。例如,
chunksize = 10;
varbase =“myvar#”;
chunkname =猫(varbase,“_chunk_”);
m = matfile (“myFile.mat”,可写的,真正的);
varlen =大小(MyVar, 1);%我将假定分块组织的行
chunklist = [1: chunksize: varlen varlen + 1];
numchunks =长度(chunklist) - 1;
chunknames =细胞(numchunks, 1);
chunknum = 1: numchunks
thisvarstr = sprintf (' % s % d '、chunkname chunknum);
m。(thisvarstr) = myvar# (chunklist (chunknum): chunklist (chunknum + 1) 1:);
chunknames {chunknum} = thisvarstr;
结束
chunkinfo =结构(“chunklist”chunklist,chunksize的chunksize,“大小”、大小(MyVar一样),“chunknames”chunknames,“chunkname”,chunkname);
chunkinfostr =猫(chunkname,“信息”);
m。(chunkinfostr) = chunkinfo;
这个生产文件变量MyVar_chunk_info一些描述性信息,和MyVar_chunk_1 MyVar_chunk_2等等信息。
鉴于任何特定列索引,可以计算基于chunksize块数量。或者你可以使用块列表,这是结构化等一系列边界[1 11 21 22]N块从细胞指数在第N个输入和结局 之前 细胞指数给出下一个条目,所以上面的列表描述块指数{1:10,11:20,21}。
[计数,chunknumber] = histc (rowindexlist chunklist);
适应任何你所需要的灵活性。

更多的答案(2)

图像分析
图像分析 2015年5月10日
为什么不直接加载一个你感兴趣的变量:
storedStructure =负载(matFullFileName,“yourCell”);
yourCell = storedStructure.yourCell;
5个评论
图像分析
图像分析 2015年5月10日
我提议大小可控的变量存储到你的垫子文件,像沃尔特一样。然后你可以退出一次只有一个可管理的块。单元阵列100000细胞并不一定很大,这取决于在每一个细胞。在一个典型的细胞是什么?几个数字或一个图像之类的东西吗?如果它太大,那么你是如何在你的程序在第一时间甚至能够保存和保存()? ? ?
你也可以看一看 memmapfile ()

登录置评。


1月
1月 2015年5月10日
c =细胞(100);
d =π;
保存(“a.mat”,“c”,' d ');
清晰的
cc =负载(“a.mat”,“c”);% = = > cc.c: {1} x100细胞
那你为什么意味着部分加载和电池不工作吗?

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!