我必须在随机位置X移动整个矩阵:
在每个新位置我将它与该位置的值进行比较(为简单起见,矩阵中唯一的部分是X)。虽然如果X从0开始这样做很容易,但在我的情况下,X片段可以从矩阵中的任何位置开始,现在我首先开始使用这个循环:
for(int i = row_x;i<rows;i++)
for(int j = col_x;j<cols;j++)
//do something
但这样做只会让我访问某些字段:vistied fields sample
我需要访问此图片中突出显示的所有字段:required
那么解决它的最简单方法是什么?
答案 0 :(得分:4)
您应该检查它是否是外循环的第一次迭代:
node
.attr("cx", function(d) {
return (d.x = Math.max(radius, Math.min(width - radius, d.x)));
})
.attr("cy", function(d) {
return (d.y = Math.max(radius, Math.min(height - radius, d.y)));
})
//now update the links.
答案 1 :(得分:2)
一种解决方案是将您的2D阵列结构更改为一维数组并以1D(不是算法)工作,然后应用此:
init = rows*i+j;
for(int l = init; l<size;i++){
//do things
}
答案 2 :(得分:0)
不要启动内部循环(循环从col_x进行列迭代,而是从第0个索引(第一列)开始。 这将涵盖required
中给出的字段