2015-01-13 45 views
0

這是將我的數據文件中的每列分配給特定變量的正確方法嗎?如何將數組的每一列分配給特定的變量?

public static void main(String[] args) { 
    //specifying the path to file 
    String datafile = " C:\\Users\\rez\\Desktop\\sol_2.mcmc"; 
    //reading the file 
    double[][] mydata = FileReadingTools.getDoubleArray(datafile); 

    double P_0; //days 
    double M_0; // in days 
    double e_0; 
    double w_0 = Math.toRadians(0); 

    double[][] list = new double[3000][50]; 
    for (int sol = 0; sol < 3000; sol++) { 

     list[sol][0] = P_0; 
     list[sol][2] = M_0; 
     list[sol][3] = e_0; 
     list[sol][4] = w_0; 

     System.out.println(P_0 + " " + M_0); 
    } 
+6

你應該看看到的自我記錄代碼的想法。 –

+1

你至少試過編譯這段代碼嗎?我對此表示懷疑。你似乎無法理解作業是如何工作的。 'a = b'表示:*變量a取變量b *的值。 –

+0

而且這並不奇怪,因爲您嘗試將單位變量P_0(和M_0等)分配給'list [sol] [0]'。 –

回答

1

我相信你已經用你的變量賦值交換了左邊和右邊。您想要從數組中分配值。另外,請使用更多的描述性變量名稱。我想你想要的東西一樣,

for (int sol = 0; sol < mydata.length; sol++) { 
    P_0 = mydata[sol][0]; // mydata v-- as noted in the comments. ---v 
    M_0 = mydata[sol][2]; 
    e_0 = mydata[sol][3]; 
    w_0 = mydata[sol][4]; 

或者,你可以使用printf,並直接與一些訪問數組一樣

System.out.printf("%.2f %.2f", mydata[sol][0], mydata[sol][2]); 
+0

它糾正了一個錯誤到目前爲止,真棒 – hellojava

+1

我不認爲這是很正確的。如果你注意到,他加載了「mydata」,並沒有使用它,但也創建了「列表」,但沒有在循環中接受任何東西。 – Daniel

+0

@Daniel正確。那麼如何將mydata鏈接到我的循環並從我的數據文件中打印這些變量? – hellojava

相關問題