如何改变这个矩阵的数组元素

时间:2013-10-16 16:49:16

标签: matlab for-loop structure

好的,我有以下FOR结构:

Ny = 246;
Nx = 190;


for n1y = 1:Ny
 for n1x = 1:Nx

  for n2y = 1:Ny
   for n2x = 1:Nx

   n1 = 
   n2 = 

   dx12 = xax(n1x) - xax(n2x);  
   dy12 = xay(n1y) - xay(n2y);
    r12 = sqrt(dx12^2+dy12^2); 

    B(n1,n2) = 0.8 * exp((-1/2)*(r12/300));

   end
  end

 end
end  

其中,xax是长度为190的向量,xay是长度为246的向量。

我的疑问是,如何以B成为(Nx * Ny,Nx * Ny)矩阵的方式确定n1和n2?

Ps:抱歉语言错误,我的母语不是英语。

感谢。

1 个答案:

答案 0 :(得分:1)

可能类似

n1 = (n1x - 1) * Ny + n1y;
n2 = (n2x - 1) * Ny + n2y;

或与所有xy部分交换相同。

但似乎你正在构建一个巨大的矩阵B(246 * 190)^ 2 * 8 / 1e9 = 17千兆字节!这真的是你想要的吗?