Matlab 在赋值A(:)=B中,A和B中的元素数必须相同

Matlab 在赋值A(:)=B中,A和B中的元素数必须相同,matlab,variable-assignment,Matlab,Variable Assignment,嗨,朋友们。 我知道每一次迭代都改变了起始\u隐藏\u层矩阵的维度。但是所有起始\u隐藏\u层的值都必须保存。如何解决这个问题 第一个隐藏层>1 gk(i)是整数值,例如5、3、8由于在每次迭代中使用不同的矩阵大小调用rand,因此无法将结果保存到普通矩阵中。您需要使用单元格矩阵来存储结果,如下所示: if (hidden_layer>1) for i =1 :hidden_layer start_hidden_layer(i) = rand([gk

嗨,朋友们。 我知道每一次迭代都改变了起始\u隐藏\u层矩阵的维度。但是所有起始\u隐藏\u层的值都必须保存。如何解决这个问题

第一个隐藏层>1


gk(i)是整数值,例如5、3、8

由于在每次迭代中使用不同的矩阵大小调用
rand
,因此无法将结果保存到普通矩阵中。您需要使用单元格矩阵来存储结果,如下所示:

    if (hidden_layer>1)
        for i =1 :hidden_layer 
       start_hidden_layer(i) = rand([gk(i+1),(gk(i)+1)])-0.5 ; 
        end
    end

有关单元数组以及如何使用它们的更多信息,请参阅。

有关代码片段必须有意义的好问题,请参阅。最简单的方法是为算法中使用的所有变量定义样本值。谢谢回答。但如果调用启动隐藏层单元;ı如何使用矩阵值?我找到了。i=1,2。。非常感谢。@Adrian单元格矩阵与普通数值矩阵既相似又不同。数值矩阵可以很好地转换为线性代数中的矩阵,而单元矩阵则与多维数组的编程概念联系更紧密。查看它们的一个简单方法是将它们视为可以容纳任何东西的篮子:整数、矩阵、结构、对象……等等。有关如何使用单元格数据的信息,请参见。
%//preallocate the cell array
start_hidden_layer = cell(1, hidden_layer);

for i = 1:hidden_layer
    start_hidden_layer{i} = rand([gk(i+1), (gk(i)+1)]) - 0.5; 
end