2016-11-09 153 views
0

我已经创建了一个尺寸为1x10的单元数组,名为A.每个元素都包含一个100x5的矩阵。因此,我得到了10个矩阵100x5。但是,我想将单元阵列的每个矩阵放入一个循环中。如果B是100x5矩阵,C是100X1矢量和c是常数,环路应该看起来像:如何从循环中的单元阵列元素中减去矩阵?

for t=1:100; 
    j=1:5; 
     x=c*inv((B(t,j)-A(t,j))*((B(t,j)-A(t,j))')*(A(t,j)-C(t,1)*ones(1,5)); 
    end; 
end; 

在结束x应递送1×10单元阵列将包含的矩阵100x5 10个元素。

我将不胜感激任何帮助。先谢谢你!

+1

因为'A'是一个单元阵列,你不应该在那里引用单元格A {k}吗?发布一个“A”,“C”,“B”,“C”的工作示例以及您正在尝试解决的问题的数学表达式也很有帮助。 –

+0

所以你说它应该是这样的:对于t = 1:100; j = 1:5; (B(t,j)-A {k(t,j)})*((B(t,j)-A {k(t,j)})')*(A {k(t,j)} -C(t,1)* ones(1,5)); end; end; – user7137145

回答

0

如果我正确理解你的问题,你在问如何访问单元阵列。让i索引单元格数组。然后您可以通过调用A{i}访问单元阵列的第i个条目。那么你的代码是:

for i=1:10 
    for t=1:100 
     j=1:5 
      x{i}=c*inv((B(t,j)-A{i}(t,j))*((B(t,j)-A{i}(t,j))')*(A{i}(t,j)-C(t,1)*ones(1,5)); 
     end 
    end 
end 

你可能要考虑你的问题,你能否在矩阵符号写它消除了中间的两个for循环。它看起来类似于最小二乘估计器,它是(X'X)^(-1)*X'y,但逐个元素的倒数将我抛弃。