我有一個使用Matlab的問題。我想創建一個巨大的鄰接矩陣,並且爲了實現這個結果,我寫了一些代碼來生成3個向量:NodeX
,NodeY
和Weight
。在Matlab中用矢量構建加權矩陣
NodeX
表示矩陣的行的索引。
NodeY
表示矩陣的列索引。
Weight
是包含權重的向量。
所有這些載體放入.csv
文件Matlab的很容易讀取。但是當我創建矩陣時,我遇到了一個問題。這是我用來將索引與權重關聯的代碼。
for i=1:1:3873
WeightedMatrix(NodeY(i), NodeX(i)) = Weight(i);
end
我看到的結果對我來說有點奇怪。事實上,如果我做的:
WeightedMatrix(NodeY(1), NodeX(1))
Matlab的打印對我說:ans = 0.2483
(這是存在進權向量中的值,但它不是我想要的值)。
如果我做的:
Weight(1)
它返回ans = 1.2550
(這是我想要的值)。
這三個載體爲例如: Data Imported from .Csv
這是創建.csv文件的最後部分:
tmp = set(Final)
tmp = tuple(tmp)
for z in tmp:
print str(z[0]) + "," + str(z[1]) + "," + str(z[2]) + "\n"
任何幫助將是非常讚賞。 謝謝你們。
在'WeightedMatrix(節點j (1),NodeX(1))'如果你想看到與Weight(1)'相同的結果,你不應該改變參數的順序嗎? – erfan
不幸的是結果是一樣的。謝謝 –
我認爲你應該分享你的代碼中你讀/生成三個向量的部分。 – erfan