Matlab 2012 ทำงานไม่ถูกต้อง

ฉันเขียนไฟล์ m นี้

function adhamm = adhamm(a,b)
    adhamm = a+b
end

และเมื่อฉันพยายามเรียกใช้ผ่านบรรทัดคำสั่งของ MATLAB ด้วยการเขียน

a = 2;
b = 3;
adhamm(a,b);

ฉันได้รับข้อผิดพลาดนี้

ฟังก์ชันที่ไม่ได้กำหนด 'adhamm' สำหรับอาร์กิวเมนต์อินพุตประเภท 'double'

ทำไมเป็นเช่นนี้?


person 3m masr    schedule 15.04.2012    source แหล่งที่มา
comment
นั่นฟังดูไม่ถูกต้อง ลองพิมพ์ which adhamm มันคงไม่อยู่ในเส้นทางของคุณ   -  person Richante    schedule 15.04.2012
comment
รหัสของคุณใช้งานได้สำหรับฉัน คุณแน่ใจหรือว่าไม่ลืมสร้างฟังก์ชันแทนสคริปต์?   -  person AlexanderN    schedule 15.04.2012
comment
ฉันลองอีกครั้งและมันก็ได้ผล! ที่เกิดขึ้นหลายครั้งหลังจากนั้น ทั้งหมดที่ฉันทำคือรีสตาร์ท Matlab!   -  person 3m masr    schedule 16.04.2012


คำตอบ (3)


ฟังก์ชันเหล่านี้ไม่ได้อยู่ในเส้นทางการค้นหาสำหรับเวอร์ชันใหม่ MATLAB ไม่รู้ว่าจะหามันได้จากที่ไหน อย่างไรก็ตาม อย่าวางไว้ในไดเร็กทอรีกล่องเครื่องมือ MATLAB นั่นไม่ใช่ที่สำหรับใส่หน้าที่ของคุณเอง วางไว้ในไดเร็กทอรีแยกต่างหากซึ่งคุณจะบอก MATLAB ถึงวิธีค้นหาโดยใช้เครื่องมือเส้นทาง (หากคุณไปที่ไดเร็กทอรีนั้น MATLAB จะค้นหาที่นั่นโดยอัตโนมัติ แต่นั่นไม่ใช่วิธีแก้ปัญหาที่ดี)

คุณต้องเรียนรู้เกี่ยวกับเส้นทางการค้นหาใน Matlab และเครื่องมือที่ Matlab ต้องมีเพื่อรักษาเส้นทางการค้นหา ดังนั้น addpath, savepath, rmpath, pathtool

person Community    schedule 15.04.2012
comment
@3mmasr: หรือคุณสามารถใส่ฟังก์ชันของคุณลงในไดเร็กทอรีที่กำหนด n userpath - person Jonas; 15.04.2012

คุณบันทึกฟังก์ชันของคุณด้วยชื่อ adhamm.m ใช่ไหม? จากนั้นลองเรียกใช้ฟังก์ชันภายในโฟลเดอร์ของ adhamm.m

person mike    schedule 15.04.2012

คุณอาจบันทึกตัวแปรชื่อ adhamm แล้ว พิมพ์ clear adhamm แล้วลองอีกครั้ง

person Oli    schedule 15.04.2012