무슨 일이 일어나고 있는지 루프는 배열의 요소를 반복하고 채우지 만 '요소 현명한'입니다. 그래서 궁극적으로 매트릭스의 마지막 요소에만 있어야하는 값으로 채워진 2D 배열 / 행렬이 있습니다. 첫 번째 요소가 채워지면 for 루프가 다음 요소와 다음 값으로 이동하도록 만드는 방법은 무엇입니까?
내가 시도한 것은 다음과 같습니다.
sim_matrix=np.zeros((3,3), dtype=float)
for i in range(0,3):
for j in range(0,3):
for k in range(0,3):
for l in range(0,3):
sim_matrix[i][j]=node_list_bsc[0][k]['bsc mean value']-node_list_bsc[1][l]['bsc mean value']
#node_list_bsc[x][y]['bsc mean value'] are float values - they are stored in a list of dictionaries,
#hence the double indexing
이것은 제공합니다 :
array([[1.14488261e-08, 1.14488261e-08, 1.14488261e-08],
[1.14488261e-08, 1.14488261e-08, 1.14488261e-08],
[1.14488261e-08, 1.14488261e-08, 1.14488261e-08]])
하지만 다음을 제공해야합니다.
[[-5.131371757023141e-10, -7.509188731093747e-08, 7.67647989217221e-07],
[8.933230795306053e-08, 1.475355781782538e-08, 8.574934343459839e-07],
[-7.567123003427902e-07, -8.312910504780254e-07, 1.144882605013307e-08]]
보시다시피 마지막 요소로만 채워집니다. 이 nest for 루프의 중앙에서 print 명령을 실행하여 채우는 방법을 확인했습니다. (예제)
[[-5.13137176e-10 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
[[-7.50918873e-08 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]...
즉, 첫 번째 요소는 정확하지만 두 번째 요소로 대체됩니다. 이것은 아마도 코드에서 이미 분명하지만 설명하는 데 여전히 유용하다고 생각합니다. 나는 또한 while 루프와 if-else 문-다음과 같이 시도했습니다.
#pseudo code following:
for i in range(0,3):
for j in range(0,3):
for k in range(0,3):
for l in range(0,3):
if sim_matrix[i][j]==0.0:
sim_matrix[i][j]=node_list_bsc[0][k]['bsc mean value']-node_list_bsc[1][l]['bsc mean value']
else: continue
꽤 가깝게 느껴지지만 나는 어디에서 잘못되고 있는지 알 수 없습니다!
내가 당신의 문제를 이해했듯이, 당신은 2D 배열의 모든 위치에서 같은 숫자를 얻고 있습니다. 처음에는 "node_list_bsc"에 대해 모르고 제안하는 것이 어렵습니다. 그러나 2D 배열에 값을 할당하려면 두 개의 루프 만 필요합니다. 코드는 sim_matrix = np.zeros ((3,3), dtype = float)로 작성할 수 있습니다.
for i in range(0,3):
for j in range(0,3):
if sim_matrix[i][j]==0.0:
sim_matrix[i][j]=node_list_bsc[0][i]['bsc mean value']- node_list_bsc[1][j]['bsc mean value']
작동하지 않으면 알려 주시고 node_list_bsc에 대한 자세한 정보를 제공하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다