[問題]function輸出函數之小問題
有一些function output=name(input)之類的小問題
我發現output的部份是不是不打x開頭的,
將不會以ans顯示出來!? 還是我的m文建有問題,以下是我的程式碼
(可能有人看過了.這兩三天都在搞同一個程序..)
function xm = code3(A,b,x0,tol,max_it);
%輸入及輸出:
% A 係數矩陣(n乘n)
% b 右側項(n乘1)
% x0 初始解(n乘1)
% tol 若x變量的範數<tol則停止
% max 最大跌代次數
%xMat % 將 x 排回原來的位置
%B將排好的 x 塞回去
% x 解向量(n乘1)
%xm塞回原方格之矩陣
[n,m]=size(A);
xold=x0;
C=-A;
for i=1:n
C(i,i)=0;
end
for i = 1:n
C(i,:)=C(i,:)/A(i,i);
end
for i=1:n
d(i,1)=b(i)/A(i,i);
end
disp('i x1 x2 x3 ....');
while(i <=max_it)
xnew=C*xold+d;
if norm(xnew-xold) <= tol
x=xnew;
disp('Jacobi method converged');return;
else
xold=xnew;
end
disp([i xnew']);
i=i+1;
end
disp('Jacobi method did not converge');
disp('results after maximum number of iterations');
x=xnew;
xMat = rot90(reshape(xnew, n^0.5, n^0.5)) ;% 將 x 排回原來的位置
B=ones(n^0.5+2,n^0.5+2); %這裡是先假設邊界全是1的矩陣來測試..之後會用手動建立
b矩陣
B(2:(end-1), 2:(end-1)) = xMat ;% 將排好的 x 塞回去
xm=B;
以上是我的程式碼...我本來是打算直接打
function B = code3(A,b,x0,tol,max_it);就好了
可是當我這樣打時,到最後則不會跑出ans..
只會告訴我收斂或是不收斂,
可當我output打成Xmat或是xm時,則會以ans的方式來顯示出來。
還是說是我本來設定上有甚麼問題 才會這樣子!?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.229.231
→
11/30 13:05, , 1F
11/30 13:05, 1F
→
11/30 13:07, , 2F
11/30 13:07, 2F
→
11/30 13:08, , 3F
11/30 13:08, 3F
→
11/30 13:14, , 4F
11/30 13:14, 4F
→
11/30 13:31, , 5F
11/30 13:31, 5F
→
11/30 13:33, , 6F
11/30 13:33, 6F
→
11/30 13:34, , 7F
11/30 13:34, 7F
我最後很像找到原因了 是因為B出現了兩次以上的樣子Orz...
※ 編輯: e01234567 來自: 140.120.229.231 (11/30 16:43)
※ 編輯: e01234567 來自: 140.120.229.231 (12/01 02:37)