看板 MATLAB 關於我們 聯絡資訊
遇到的問題是 透過兩條由連接兩個點的線來找交點 都是簡單的二元一次線性方程式 但是方程式的斜率和常數會需要一直改變 所以先用下面的方法測試 但是得出的交點卻顯示代數而不是直接顯示數值 想要看數值必須把那串代數答案重新輸入才看的到 有沒有辦法在跑的過程中直接得到數值答案? 變成: x=4 y=4 這樣。 感謝。 程式碼: %Line_1 x1=0; y1=0; x2=8; y2=8; a = polyfit([x1,x2],[y1,y2],1); %Line_2 x3=0; y3=8; x4=8; y4=0; b = polyfit([x3,x4],[y3,y4],1); value_ax = a(1,1); %Line1斜率 value_ay = a(1,2); %Line1常數 value_bx = b(1,1); %Line2斜率 value_by = b(1,2); %Line2常數 syms x y [x,y] = solve('y = value_ax * x + value_ay','y = value_bx * x + value_by') 結果: x = -(value_ay - value_by)/(value_ax - value_bx) y = (value_ax*value_by - value_ay*value_bx)/(value_ax - value_bx) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.107.168.98 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1531146390.A.572.html
LiamIssac: 先確定一下你的value ax ay什麼的是不是數值 有可能不 07/09 22:34
LiamIssac: 是 07/09 22:34
ccam: polyfit([x1,x2],[y1,y2],1)出來的結果是 [1 0] 07/09 22:41
ccam: 所以value_ax跟value_ay就是1跟0 07/09 22:42
ccam: 這個是確定的 07/09 22:42
原本我是寫 [x,y] = solve('y = a(1,1) * x + a(1,2)','y = b(1,1) * x + b(1,2)') 結果答案會變: x = -(a(1, 2) - b(1, 2))/(a(1, 1) - b(1, 1)) y = (a(1, 1)*b(1, 2) - a(1, 2)*b(1, 1))/(a(1, 1) - b(1, 1)) 後來才試著用另一個數去取代,但是結果還是一樣 ※ 編輯: ccam (120.107.168.98), 07/09/2018 22:46:18