2017-08-10 66 views
1

我有关于如何更改我的坐标系的问题。我使用数据文件创建一个空间因变量(K_final),其起点位于左下角;我想使用当前坐标系(单元格)将坐标系更改为位置(2,2,2)处模型网格的中心。每个单元是0.25米/单元。我在脚本中调用的.dat文件只是简单地将随机生成的相关空间相关字段放入,我已经包含了该字段的一小部分。如何更改矩阵数组的值

我该如何改变矩阵的索引而不改变值?

A = [0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36 0.8 0.9 1 2 0.001 0.1 1 10 0.01 0.1 0.5 0.36]' 

nx = 5; ny = 4; nz = 4; 

k = 1; average_K = 8; 
variance_K_high = 4; 
variance_K_mid = 1; 
variance_K_low = 0.25; 


K_final = zeros(nx,ny,nz); 

for a=1:(nx); 
    for b=1:(ny); 
     for c=1:(nz); 
      K_final(a,b,c) = average_K*exp((variance_K_low^0.5)*A(k,1)); 
      k=k+1;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
     end 
    end 
end 

谢谢,埃里克

+1

这是很不清楚你想要什么,代码做什么,两者之间的关系是什么。请尝试解释更多 –

+0

“如何在不更改值的情况下改变矩阵的索引?”你在谈论重塑矩阵?请参阅matlab中的'reshape()'函数。 – jodag

+0

目前我正在尝试使用matlab建模24个499x499单元格。我目前测量距离的系统是计数细胞(0.25米/细胞)。例如,如果我想绘制一条线,我必须使用单元格数引用位置。目前,左下角是第一个单元格(1,1,1)。我想让单元格(2,2,2)成为原始问题的原点,原点当前位于左下角。所以我的K_final数组给了我x,y,z和变量。如何更改x,y和z坐标? – USer43903820

回答

0

采用分片(X,Y,Z,V,SX,SY,SZ)...确定你想要什么以后X,Y,X