保存部分matlab单元格数组,正确引用

时间:2014-05-21 20:42:43

标签: matlab

我发现以前由某人发布的以下MATLAB代码:

x = cell(3,4);
save x;
matObj = matfile('x.mat','writable',true);
matObj.x(3,4) = {eye(10)};

它创建一个.mat文件,其中包含3x4单元格数组,位于(3,4)的单元格内容为10x10单位矩阵。

读取.mat文件并将身份矩阵中位于(2,3)的元素的值更改为-5?

的语法是什么?

如果可以使用花括号,我会将其作为mat.Obj.x {3,4}(2,3)= - 5,但MATLAB表示不支持这种类型的单元数组引用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

据我所知,matlab中没有办法像你想要的那样引用matlab.io.MatFile个对象。更简单的方法就是创建一个临时变量来完成它。

因此,试图这样做:

matObj.x(3,4) = {eye(10)};
matObj.x{3,4}(2,3)=-5; % this will lead to error, as you noticed

这样做:

tmpVar = eye(10);
tmpVar(2,3) = -5;    
matObj.x(3,4) = {tmpVar};