我有两个矩阵(V;顶点节点坐标x,y,z& T;三角形列表显示构成三角形的节点(1,2,3))
我想用相应顶点节点的坐标替换T中的值,即:
V
1 --- 1.35234 1.2542445 1.32234324
2 --- 3.42354 1.2521345 1.34325524
3 --- 2.26434 1.2323345 1.33225324
T
1 2 3
should go to
T_V
1.35234 1.2542445 1.32234324 3.42354 1.2521345 1.34325524 2.26434 1.2323345 1.33225324
答案 0 :(得分:1)
T
始终是(1x3)
数组,您可以尝试:
T_V=reshape(V(T(:),:)',1,numel(T)*size(V,2))
对于更一般的情况,如果T
是一个矩阵,例如:
T=[1 2 3;4 5 6]
用于V
矩阵,例如
V=[
1.35234 1.2542445 1.32234324
3.42354 1.2521345 1.34325524
2.26434 1.2323345 1.33225324
10 20 30
40 50 60
70 80 90]
你可以尝试:
T1=T'
V_T=reshape(V(T1(:),:)',1,numel(T1)*size(V,2))
修改强>
如果T_V
矩阵的预期形状为(n_row of T x 9)
,您可以尝试(我在V
和T
添加了一些行以用于测试目的):
V=[
1.35234 1.2542445 1.32234324
3.42354 1.2521345 1.34325524
2.26434 1.2323345 1.33225324
10 20 30
40 50 60
70 80 90]
T=[1 2 3
5 4 6]
T1=T'
T_V=reshape(reshape(V(T1(:),:)',1,numel(T1)*3),size(T,2)*size(V,2),size(T))'
生成的T_V
矩阵:
T_V =
1.3523 1.2542 1.3223 3.4235 1.2521 1.3433 2.2643 1.2323 1.3323
40.0000 50.0000 60.0000 10.0000 20.0000 30.0000 70.0000 80.0000 90.0000
注意:使用Octave进行测试
答案 1 :(得分:0)
我不知道你的意思是否是基本的,但是
V = [1.35234 1.2542445 1.32234324;
3.42354 1.2521345 1.34325524;
2.26434 1.2323345 1.33225324];
T = [1 2 3]
Tv = [V(T(1),:),V(T(1),:),V(T(3),:)];