用 subsasgn 调用 Matlab 的 memmapfile
call Matlab's memmapfile with subsasgn
我有一个大型可写 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 有什么问题?
Matlab 实际上试图做的是加载文件的全部内容。
正确的行是:
[~] = subsasgn(mmap, substruct('.', 'Data', '.', 'bit', '()', {1}))
我有一个大型可写 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 有什么问题?
Matlab 实际上试图做的是加载文件的全部内容。
正确的行是:
[~] = subsasgn(mmap, substruct('.', 'Data', '.', 'bit', '()', {1}))