Re: [問題] 拜託幫我一下已回收
※ 引述《dadada123 (祐祐)》之銘言:
: 能勞煩各位看一下嗎?以下是我的程式碼:
: syms x1 x2
: f=@(x1,x2) x1^2+x2^2; % 這行是多餘的,可以刪掉
: y=x1^2+x2^2;
: y1=diff(y,x1);
: y2=diff(y,x2);
y1, y2 型態為 symbol
如果想要以數字(或其他符號)取代原本的符號
可用 subs
所以下面改成這樣
: z1=@(xa,xb) subs(y1,{x1,x2},{xa,xb});
: z2=@(xa,xb) subs(y2,{x1,x2},{xa,xb});
three=@(x0) x0+1;
: x1=3;x2=5; % 這邊已經把 syms x1,x2 覆蓋
: x0=[x1,x2];
: %a=eval(z1(x0));
上面這行會錯吧,z1 為兩個變數輸入,你只打一個變數
改成下面這樣
a=z1(x0(1),x0(2));
或
a=z1(x1,x2);
: [t2]=three(x0);
: %b=eval(z1(t2));
b=z1(t2(1),t2(2));
: fprintf('%d\n',a);
: fprintf('%d\n',b);
: 而我的函數的M檔案如下:
: function [t2]=three(x0)
: t1=x0;
: delta=1;
: t2=t1+delta;
不用特地用 Mfile 描述這個數學式
函數寫在上面
: ====================================================
: 我的問題在於我的x0變為矩陣後代入t(x0),成功的算出a=6
: 而x0代到函數裡做運算後,回傳t2的值為[4 6]
: 但是代到t(x0)做運算後,出來的值b卻還是等於6
: 不是應該會變成8嗎?
: 請問為什麼矩陣內的值明明有更新,但是運算的時候卻沒有改變
: 是哪裡的設定有問題嗎?
看起來沒問題啊,有更新吧。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.254.220.250
推
05/27 09:12, , 1F
05/27 09:12, 1F
→
05/27 10:25, , 2F
05/27 10:25, 2F
→
05/27 10:25, , 3F
05/27 10:25, 3F
推
05/28 00:50, , 4F
05/28 00:50, 4F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
0
6