首页 > 解决方案 > 用 subsasgn 调用 Matlab 的 memmapfile

问题描述

我有一个要访问和修改的大型可写 Matlab 的 memmapfile 对象。

使用权

如果我尝试:

mmap.Data.bit(1)

或者

subsref(mmap.Data.bit, substruct('()', {1}))

我得到相同的值(0)。

调整

如果我尝试:

mmap.Data.bit(1) = 1

我可以很快地分配这个值,但如果我尝试:

[~] = subsasgn(mmap.Data, substruct('.', 'bit', '()', {1}))

Matlab 停止响应并且永远不会结束该行。

subsasgn 和 mmap 有什么问题?

标签: matlabmemory-mapped-files

解决方案


Matlab 实际上试图做的是加载文件的全部内容。

正确的行是:

 [~] = subsasgn(mmap, substruct('.', 'Data', '.', 'bit', '()', {1}))

推荐阅读