簡體   English   中英

在矩陣的單元格數組中添加單元格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM