下面是我想用來做計算並返回一個值的方法。方程式爲:L = T + R * p - b其中L,R,p和b將有一個下標(0-5)。 R是一個3x3矩陣,在另一個類中存儲/生成,p和b是6組(x,y,z)座標的數組。當程序運行時,L應該有6個總值,並且我選擇將它們存儲在一個數組中。Java:算術與數組(乘法,加法,減法)
我得到的第一個錯誤是當我沒有rotationMultiply
或for
循環。相反,我有rotation*platformCoords
。所以現在我已經擺脫了這個錯誤,我得到一個新的錯誤:「令牌上的語法錯誤」*「無效的AssignmentOperator」,對於rotation[i][j]*platformCoords[i]
行以及另一個錯誤:運算符 - 對於參數類型double是未定義的,雙行[],行tLength + rotationMultiply - baseCoords;
。
我敢肯定,一旦我得到了照顧,會有更多的錯誤,所以如果你能預料到任何,並給我一個在哪裏我可以做更多的學習,我會很感激它。
這是我試圖編寫的一個程序,它有助於控制Stewart平臺。
public class LiCalc {
double length[];
public double legLength(double tLength, double[][] rotation, double[] platformCoords, double[] baseCoords){
double rotationMultiply;
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
rotation[i][j]*platformCoords[i];
return rotationMultiply;
}
}
length = tLength + rotationMultiply - baseCoords;
return length[];
}
}
基本上(一)你不能沒有在分配給* *的東西做算術運算。這就是發生第一個錯誤的原因。 (b)你必須對標量值進行算術運算,所以你不能從double中減去一個矢量,而'baseCoords'基本上是一個矢量(一個數組)。 (c)什麼是'length []'? (d)您如何期望將算術(標量!)的結果賦值給一個向量? – RealSkeptic 2015-02-06 15:20:30
所以我絕對認爲我是將操作「分配給」rotation [] [] * platformCoords []',但是你所說的一切讓我覺得我需要重新審視數學,因爲我認爲'tLength'也需要成爲一個矢量(我認爲這將是一個不變的標量值,但重讀這個數學使我思考方式不同)。 'length []'是平臺上每個腿需要的長度數組。最終,程序的另一部分迭代'length []'進行一些計算並輸出特定伺服需要旋轉的角度。 – 2015-02-06 15:38:55
您還需要查看您的Java。如果'length'是一個變量的名字,'length []'是非法的。一組空括號僅在類型名稱後合法。分配是通過'='運算符或其任何簡短格式('+ =','/ ='等)完成的。您必須將算術運算的* result *賦值給標量變量。 – RealSkeptic 2015-02-06 15:43:03