2013-11-15 192 views
1

我是Maple的新手,我確實需要Matlab的input()函數。我搜索了很多,但沒有簡單的方法或至少像Matlab一樣直接獲得輸入。 其實我需要的是一種從Maple用戶獲取函數定義的方法。 我會很高興,如果有人幫助:)Maple等價於Matlab的輸入函數

EG(Matlab代碼)

f = input("Enter your function : "); 

輸出:

輸入功能:X^2 + Y^2 +日誌(10)+ 2 * exp(z)

我在問什麼是我該如何實現像Maple中的Matlab代碼一樣?

+1

我並不真正瞭解Maple的任何內容,但[本頁](http://kb.mit.edu/confluence/pages/viewpage.action?pageId=3907040)暗示它支持'scanf'在一定程度上。 – horchler

回答

1

如何使用readstat命令?例如,

restart: 

f := readstat("Enter your function:"); 

可以從Maplets代碼中設計更復雜的彈出窗口。作爲Maplets的一個簡單示例,

restart: 

maplet:=Maplets:-Elements:-Maplet(
     Maplets:-Elements:-InputDialog["ID1"](
     "Enter your function:", 
     ':-onapprove'=Maplets:-Elements:-Shutdown(["ID1"]), 
     ':-oncancel'=Maplets:-Elements:-Shutdown())): 

f:=parse(Maplets:-Display(maplet)[]); 

您沒有說出您的最終用戶是否會以其他方式與會話進行交互。用戶是否可以運行整個工作表?你有沒有考慮用Embedded Components製作一個完整的交互式程序集?

+0

謝謝,看來我必須在readstat()之後使用f:= unapply(f,x,y,...),對嗎?有什麼方法或更簡單的方法來避免這個階段? –

+0

在回答'readstat'或者像'x^2-x-1'這樣的表達式時,你可以輸入像'x-> x^2-x-1'這樣的運算符。如何將表達式轉換爲運算符應作爲整個其他問題在新線程中提出,因爲它與readstat,scanf或上面提到的問題本質上沒有任何關係。你可以做到這一點,例如。 'f:= unapply(readstat(「在x:中輸入一個表達式)」,x);'或者你可以在新線程中詢問如何獲得幻想並使其使用'indets'來強健地確定不確定的名字,不適用等。 – acer