我编写了可以正常工作的MATLAB代码,但我想以一种更有效的方式编写它(我不想重复自己,而是想使其干燥)。
首先,我创建一个由(28 * 8)组成的矩阵,然后将其某些元素更改为减元素。
代码如下:
a=ones(28,8);
for i=1:7
j=1;
a(i,j)=-1;
end
for i=8:13
j=2;
a(i,j)=-1;
end
for i=14:18
j=3;
a(i,j)=-1;
end
for i=19:22
j=4;
a(i,j)=-1;
end
for i=23:25
j=5;
a(i,j)=-1;
end
for i=26:27
j=6;
a(i,j)=-1;
end
for i=28:28
j=7;
a(i,j)=-1;
end
答案 0 :(得分:2)
所有这些代码实际上都可以简化为一行:
<a-entity geometry="primitive: plane" id="Port1" material="shader: flat; src: #port-up; opacity: 1; transparent: true;" position="-0.0864061363986284 1.8001253687779366 13.368669972030895" rotation="0 45 0" scale="0.4 0.4 0.5"></a-entity>
工作原理:上面的解决方案首先创建{7}的7乘8矩阵,然后减去ones的7乘8矩阵(主对角线)乘以2。这给出了一个矩阵,其中主对角线上有一个负数。然后,它使用identity matrix将每行的第一行复制为7,第二行复制为6,依此类推。
a = repelem(ones(7, 8)-2.*eye(7, 8), 7:-1:1, 1);