Re: [問題] 創造方程式跟定義變數出現錯誤

看板MATLAB作者 (氧氣)時間11年前 (2013/01/23 09:51), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《LongFive ( ==龍五==)》之銘言: : 小的是超新手,對於matlab才剛上手2天,有些很淺薄基礎觀念想請教版上高手, : 老實說這幾天也google了很多論壇,有些有找到解答,便依樣畫葫蘆去作, : 但後面出現些錯誤就不知道該怎麼處理了,希望有前輩可以稍微提點,謝謝!! : 1.寫一個骰子的隨機矩陣 dice(m,n),輸入m,n會產生m*n矩陣,數字都在1~6間 : 小弟寫法(很簡陋): : function x = dice(m,n) : %randint(m,n,[1 6]) : randint(m,n,[1 6]) : end : --------- : 產生錯誤: : Warning: This is an obsolete function and may be removed in the future. : Please use RANDI : instead. : > In randint at 41 : In dice at 6 : 我知道第一個是叫我改用RANDI這個函數,但我改用好像還是有錯,請教有沒有甚麼 : 比較好的寫法,謝謝! 你可以help一下randi的用法...其實跟舊函數randint有點不太一樣 應該講argument的輸入有點改變 要改成 randi( [ 1 , 6 ] , m , n ) 建議你看一下印象會比較深刻 : 2.續上題,我想用一個常數pk去代表dice(1,500),即為pk=dice(1,500) : 但我執行pk=dice(1,500)後,照理pk應該就被定義了,可是當我要用hist(pk)畫出 : 長條圖時,系統卻告訴我Undefined function or variable 'pk' : 所以沒辦法跑出長條圖,後來我再用syms去定義pk,卻還是不行@@? 請教原因! 問題出在你原本的function沒有定義x是什麼東西 雖然function寫輸出是x 但是內文沒有x 所以只要改成 x = randi( [ 1 , 6 ] , m , n ); 應該就可以了 : 3. 小弟想創造一個函式:f(x)= 1/(1+exp(-x)),卻不知道該怎麼用語法寫。 : 想到用: : function M = f(Y) : Y=1/(1+exp(-x)) : end : 但這樣子自知沒有這麼簡單,卻也不知道該怎麼修補比較好...唉 這非常的奇怪= = function輸出明明就是M 但內文卻是給Y 這有牛頭不對馬尾 而且Y是function輸入的argument 怎麼可以在內文又變成輸出 我揣測一下你想要的原意 function y = f(x) y = 1/(1+exp(-x)); end 這樣寫應該就可以了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.127.59

01/23 10:57, , 1F
原來如此,真是感謝了!
01/23 10:57, 1F
文章代碼(AID): #1G_q8IxF (MATLAB)