Re: [問題]向量問題已回收

看板MATLAB作者 (eji)時間13年前 (2010/11/10 10:01), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《xk5566 (藍藍綠)》之銘言: : clear; : syms x a; : w1=(sin(a)^2-(1.44/1.455)^2)^0.5/cos(a)-x; : j=1; : for x=0.1:0.1:20 : W2=eval(w1); : Y(j)=eval(solve(W2)); : Y(j)=Y(j)*180/pi; : j=j+1; : end : plot(Y,0.1:0.1:20); : ??? In an assignment A(I) = B, the number of elements in B and : I must be the same. : 請問是哪裡出了問題 因為solve出來的解有兩組 只差正負號 法一: 只存一組 中間多一個變數就好 clear; syms x a; w1=(sin(a)^2-(1.44/1.455)^2)^0.5/cos(a)-x; j=1; for x=0.1:0.1:20 W2=eval(w1); sol=eval(solve(W2)); Y(j)=sol(1); Y(j)=Y(j)*180/pi; j=j+1; end plot(Y,0.1:0.1:20); 取出來是正的解 如果你要負解就再變號 法二: 存成cell array cell使用大括號 {} clear; syms x a; w1=(sin(a)^2-(1.44/1.455)^2)^0.5/cos(a)-x; j=1; for x=0.1:0.1:20 W2=eval(w1); Y{j}=eval(solve(W2)); Y{j}=Y{j}*180/pi; j=j+1; end 每個cell裡面都是2*1的向量 針對你這題就用法一就好了 但如果你每個參數解出來解的個數會不一樣 甚至有些參數沒有解 那存成cell比較好 因為每個cell可以存不同型態 不同長度的資料 存完後再另外處理 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.17.23

11/10 12:28, , 1F
3q
11/10 12:28, 1F
文章代碼(AID): #1CsVpxuX (MATLAB)