[英]Add cells in cell array of matrices
用于创建单元数组的代码取自: MATLAB中的矩阵数组 [感谢Hosam Aly!]
功能是:
function result = createArrays(nArrays, arraySize)
result = cell(1, nArrays);
for i = 1 : nArrays
result{i} = zeros(arraySize);
end
end
我的代码:
a=createArrays(49,[9,9]);
a{1}(1,1) = 0.01 + 1.*rand(1,1);
a{1}(2,2) = 0.01 + 1.*rand(1,1);
a{1}(3,3) = 0.01 + 1.*rand(1,1);
a{1}(4,4) = 0.01 + 1.*rand(1,1);
a{1}(5,5) = 0.01 + 1.*rand(1,1);
a{1}(6,6) = 0.01 + 1.*rand(1,1);
a{1}(7,7) = 0.01 + 1.*rand(1,1);
a{1}(8,8) = 0.01 + 1.*rand(1,1);
a{1}(9,9) = 0.01 + 1.*rand(1,1);
我不能使用{:}(1,1)来引用所有矩阵。 使用循环时,Matlab发现使用{}一个意外的括号。
我想保持上面的格式为对角线。 我该怎么办?
我能看到的最好的事情就是遍历所有细胞:
for i = 1:49
a{i}(1,1) = ...
end
但是为什么在你可以做3D矩阵的时候使用细胞呢?
a = zeros(49,9,9);
a(:,2,2) = something
要填充对角元素,您不必逐个进行。 请改用EYE功能。
c1 = 1;
c2 = 0.01;
for i = 1:numel(a)
a{i} = eye(size(a{i}) * c1 + c2;
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.