ฉันจะเปิดใช้ Matlab เพื่อ Unity ได้อย่างไร


22

ฉันกำลังพยายามติดตั้งตัวเรียกใช้งาน Matlab R2011a สำหรับ Unity ใน Ubuntu 12.04 ฉันได้ลองใช้คู่มือนี้ (แม้ว่าฉันรู้ว่าใช้เวลา 11.10 และกล่าวถึงว่า 11.10 เป็นระบบปฏิบัติการที่ไม่รองรับสำหรับ Matlab R2011a) แต่ไม่มีวิธีแก้ปัญหาที่น่าพอใจ

นี่คือไฟล์ตัวเรียกใช้งานของฉัน/usr/share/applications/matlab.desktop:

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Icon=/usr/share/icons/matlab.png
Name=MATLAB R2011a
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop
Categories=Development;

ฉันเปิดแผงควบคุมและค้นหา "matlab" ตัวเรียกใช้นี้พบได้ในแอปพลิเคชัน ฉันคลิกและหน้าจอเริ่มต้นของ Matlab จะปรากฏขึ้น แต่เมื่อมันหายไปโปรแกรมจะไม่เริ่มทำงาน (ฉันได้ตรวจสอบแล้วhtopว่าไม่มีการทำงานของกระบวนการ matlab ในพื้นหลัง)

ถ้าฉันเพิ่ม

Terminal=true

ไปยังไฟล์ลอนเชอร์โปรแกรมเริ่มต้น OK และเปิดเทอร์มินัลเช่นเดียวกับ Matlab อย่างไรก็ตามทั้งเทอร์มินัลและ Matlab นั้นจะปรากฏในพื้นที่ตัวเรียกใช้พร้อมกับไอคอน Matlab ดังนั้นดูเหมือนว่าฉันจะมีอินสแตนซ์ Matlab สองอันที่ทำงานเมื่อจริง ๆ แล้วมันเป็นเพียงตัวเดียว (ที่จริงแล้วพวกเขาแสดงเป็นสองโปรแกรมที่แตกต่างกันและไม่เพียงสองอินสแตนซ์เดียวกัน - ไอคอนมีความเป็นอิสระไม่รวมกลุ่มกัน)

สิ่งนี้ไม่เหมาะสมที่สุด ฉันหวังว่าจะสร้างตัวเรียกใช้งานฉันสามารถล็อคไปที่พื้นที่ตัวเรียกใช้จากนั้นไอคอนเดียวกันนั้นจะเป็นไอคอนสำหรับอินสแตนซ์ Matlab ที่ใช้งานอยู่เมื่อโปรแกรมกำลังทำงาน

ฉันจะสร้างตัวเรียกใช้งานสำหรับ Matlab ที่ทำงานได้ตามที่คาดไว้ได้อย่างไร

อัปเดต:เห็นได้ชัดว่าฉันไม่ค่อยชัดเจนกับอาการของฉันฉันจะพยายามชี้แจงเล็กน้อย ฉันได้ลองคำแนะนำจากคำตอบและตรวจสอบเพิ่มเติมว่าเกิดอะไรขึ้น การตั้งค่าปัจจุบันของฉัน (ไฟล์ตัวเรียกใช้งานพร้อมTerminal=trueและExec=matlab -desktop -nosplash &) แสดงลักษณะการทำงานต่อไปนี้:

  1. ฉันเปิด Dash โดยกดปุ่ม Windows บนแล็ปท็อปและค้นหา "matlab" ค้นหาตัวเรียกชื่อ "MATLAB R2011a" ฉันคลิกมัน
  2. หน้าต่างเทอร์มินัลจะเปิดขึ้นโดยใช้ไอคอนที่ฉันอ้างถึงในไฟล์เรียกใช้งาน เกือบจะในทันทีหน้าจอเริ่มต้นของ MATLAB ก็เปิดขึ้นโดยใช้ไอคอนเดียวกัน (และถูกจัดกลุ่มกับหน้าต่างเทอร์มินัลในตัวเรียกใช้งาน)
  3. หน้าจอเริ่มต้นจะหายไปและไอคอนตัวใดตัวหนึ่งในตัวเรียกใช้งาน สภาพแวดล้อมเดสก์ท็อปของ MATLAB จะเปิดขึ้นโดยใช้ไอคอนเวอร์ชันอื่นซึ่งแสดงอยู่ถัดจากไอคอนสำหรับหน้าต่างเทอร์มินัล (ไม่ได้จัดกลุ่มด้วย)

ฉันสามารถล็อคไอคอนของหน้าต่างเทอร์มินัลไปที่ตัวเรียกใช้งานและเริ่มต้น MATLAB ได้สำเร็จโดยคลิกที่ปุ่ม แต่มันก็ไม่เหมาะที่ฉันจะเริ่มต้นโปรแกรมด้วยไอคอนเดียวและสลับไปที่อีกอันหนึ่ง ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

  • Execโดยไม่มีเครื่องหมายและ&ในคำสั่งตัวเรียกใช้ แต่ก็ไม่ได้สร้างความแตกต่าง
  • การดำเนินการmatlab -nosplashด้วยตนเองจากเทอร์มินัลยังคงแสดงหน้าจอเริ่มต้น (ถ้าเช่นนั้นแล้วตัวเลือก nosplash จะทำอย่างไรจริงๆ)

จะเกิดอะไรขึ้นเมื่อคุณรันmatlabด้วยตนเองในหน้าต่าง Terminal
Eliah Kagan

@EliahKagan: นั่นทำงานได้อย่างสมบูรณ์แบบ มันไม่สำคัญว่าฉันจะวิ่งmatlabหรือmatlab -desktopอย่างใดอย่างหนึ่ง
Tomas Aschan

ฉันมีปัญหาเดียวกันกับไอคอน ฉันยังติดตั้งแพคเกจ Ubuntu สำหรับ matlab จาก repos ฉันคิดว่ามันแปลกจริง ๆ ที่เมื่อคุณเริ่ม matlab ไอคอนอื่นจะถูกสร้างขึ้นและถ้าคุณล็อกใหม่กับตัวเรียกใช้ตัวใหม่จะไม่เปิด matlab ...
Felipe

คำตอบ:


14

คำตอบของการ์เร็ตต์เกือบจะได้ผลสำหรับฉัน แต่ฉันต้องใช้แทน

StartupWMClass=sun-awt-X11-XFramePeer

สิ่งนี้ยังคงให้ไอคอนตัวเรียกใช้งานเพิ่มเติมในขณะที่มองเห็น splashscreen (เพราะ WM_CLASS ของ spashscreen นั้นเป็นเพียง "MATLAB") แต่จากนั้นหน้าต่างจะได้รับการจัดกลุ่มอย่างเหมาะสมภายใต้ตัวเรียกใช้งาน

อินสแตนซ์ใหม่ของ Matlab (เริ่มต้นด้วยเทอร์มินัลหรือไซแนปส์หรือจาก tty อื่นด้วยexport DISPLAY=:0) จะได้รับการจัดกลุ่มภายใต้ตัวเรียกใช้งานนี้และตัวเลือกออกจากตัวเรียกใช้จะฆ่าพวกเขาทั้งหมด

ฉันพบค่า WM_CLASS นี้โดยใช้

$ xprop WM_CLASS

จากนั้นคลิกที่หน้าต่าง Matlab คำสั่งที่ผมได้รับจากSuperuser

เพื่อป้องกันไม่ให้ไอคอนตัวชั่วคราวพิเศษคุณยังสามารถเพิ่ม-nosplashธงหลัง-desktopหนึ่ง

ดังนั้น~/.local/share/applications/MATLAB.desktopหน้าตาของฉันเป็นแบบนี้:

[Desktop Entry]
Version=1.0
Type=Application
Icon=matlab
Name=Matlab
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop -nosplash
Terminal=false
Categories=Development;
StartupNotify=true
StartupWMClass=sun-awt-X11-XFramePeer
X-Ayatana-Desktop-Shortcuts=New_Window;

Name[en_US]=MATLAB

[New_Window Shortcut Group]
Name=start a new MATLAB instance
Exec=matlab -desktop

นี่คือ Ubuntu 12.10 กับ Matlab R2012b


มันทำงานได้ตามที่ฉันต้องการ ขอบคุณมาก!
Tomas Aschan

2
ฉันมีการขยายตัวในคำตอบของคุณนิด คำอธิบายที่นี่
flying sheep

ไม่ทราบว่าคนอื่น ๆ มีโลโก้ของตัวเองที่ไหน แต่งานนี้:$ sudo wget http://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/pixmaps/matlab.png
Neil Traft

7

มันแปลกมาก matlab -desktopจริงๆควรจะทำเคล็ดลับ

วิธีที่ 1: ดูว่ามีอะไรผิดปกติกับตัวเรียกใช้งาน

ฉันมีไอคอน MATLAB ที่ใช้งานได้ใน Unity sidebar ฉันสามารถคลิกมันมันรักษาไอคอนที่ถูกต้องและไม่ได้เปิดสถานี เท่าที่ฉันเห็นมันค่อนข้างเหมือนกับรหัสของคุณ:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/MATLAB/R2011b/bin/matlab -desktop
Name=MATLAB
Icon=/home/tomas/icons/Matlab_Logo.png

รหัสข้างต้นอยู่ใน matlab.desktop /usr/share/applications/ซึ่งจะอยู่ใน ความแตกต่างเพียงอย่างเดียวที่ฉันเห็นว่าเป็นไปได้คือ (i) Execเส้นทาง แต่ถ้าคุณติดตั้ง symlink ระหว่างการติดตั้ง MATLAB คุณควรทำงานได้ดีและ (ii) ฉันกำลังเรียกใช้ MATLAB R2011b

เหมือนคุณฉันใช้ Ubuntu 12.04

ในกรณีที่ฉันพลาดบางสิ่งคุณสามารถลองใช้รหัสของฉันเพื่อเริ่มต้น MATLAB ใครจะรู้ว่ามันอาจทำงานได้

วิธีที่ 2: การแก้ไขปัญหาสกปรกด้วยเครื่อง

คุณพูดถึงmatlab -desktopการทำงานในเทอร์มินัล (เช่นการเพิ่มTerminal=true) อย่างไรก็ตามมันมีสองหน้าจอที่จัดกลุ่มไว้ภายใต้ MATLAB

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

matlab -desktop &

หากใช้งานได้คุณสามารถลอง (i) สร้างตัวเรียกใช้ด้วยTerminal=trueและโค้ดด้านบนหรือ (ii) สร้างตัวเรียกใช้ที่อ้างถึงสคริปต์ทุบตีซึ่งจะเรียกรหัสข้างต้น

สำหรับคุณวิธีที่ 1 ไม่ได้ช่วยอะไรเลย ถ้า Approach 2 ไม่ทำงานอาจเป็นการดีที่จะเล่นสักหน่อยดูสิ่งที่คุณทำได้และไม่สามารถทำได้ด้วยเครื่องหมายแอมเปอร์แซนด์เทอร์มินัลและสคริปต์ทุบตี ฉันค่อนข้างออกมาจากความคิดที่ดี แต่บางคนฉลาดกว่าฉันอาจช่วยคุณได้


ฉันลองใช้รหัสของคุณแล้ว แต่ไม่ประสบความสำเร็จ นอกจากนี้ (i) ฉันติดตั้ง symlink ระหว่างการติดตั้ง Matlab (ii) แน่นอนว่าอาจเป็นความแตกต่างที่สำคัญ - น่าเสียดายนี่คือใบอนุญาตด้านการศึกษาและฉัน R2011a เป็นรุ่นล่าสุดที่มีให้ฉันดังนั้นฉันจึงไม่สามารถทดสอบกับ R2011b = (
Tomas Aschan

ฉันเพิ่งแก้ไขโพสต์ของฉันเพิ่มแนวคิดอื่น บอกให้เรารู้ว่ามันทำงานอย่างไรสำหรับคุณ
โทมัส

ขอบคุณ! อย่างไรก็ตามมันไม่ได้สร้างความแตกต่างมากนัก ฉันดูเหมือนจะไม่ค่อยชัดเจนกับอาการของฉัน; โปรดดูการอัปเดต OP สำหรับคำอธิบายบางอย่าง
Tomas Aschan

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

คุณเห็นข้อความที่สอดคล้องกับไฟล์ .desktop อย่างไร
DBinJP

4

ฉันติดตั้งไฟล์ / สคริปต์ Matlab Configuration จากศูนย์ซอฟต์แวร์ มันแสดงตัวเรียกใช้งาน Matlab ในเส้นประและทำงานอย่างสมบูรณ์แบบสำหรับ Matlab2011a ใน Ubuntu 12.04 แต่มันไม่ทำงานจากตัวเรียกใช้งาน ฉันหมายความว่าถ้าคุณล็อคมันบนตัวเรียกใช้งานและลองเริ่มจากที่นั่นมันจะไม่ทำงานอย่างน้อยมันก็ไม่ทำงานสำหรับฉัน ดังนั้นฉันต้องเริ่มจากเส้นประ

ในการติดตั้งสิ่งนี้ให้ไปที่Ubuntu Software Centerค้นหาMatlabมันควรเป็นอันแรกในรายการ (ไอคอนคือโลโก้ Matlab) เพียงติดตั้งแล้วมันจะดูแลส่วนที่เหลือ


1
เคล็ดลับดี! อย่างไรก็ตามมันมาพร้อมกับปัญหาเดียวกันกับตัวเรียกใช้งานที่ฉันสร้างขึ้นเอง
Tomas Aschan

เยี่ยมมากขอบคุณ @maqtanim! ทำงานเช่นเสน่ห์สำหรับผม (อูบุนตู 12.10 amd64)
บบส.

ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน (Matlab R2013a เมื่อ 12.10) ก่อนที่จะทำการติดตั้งฉันยังไม่มีตัวเรียกใช้งาน ลิงก์ไปยังศูนย์ซอฟต์แวร์: apt.ubuntu.com/p/matlab-support
Tobold

3

นี่คือสิ่งที่ฉันทำเพื่อให้สิ่งต่าง ๆ ทำงานอย่างถูกต้องเริ่มต้นด้วยการติดตั้งใหม่ ( รุ่น R2010b บน Ubuntu 12.04 )

  1. ติดตั้งแพคเก MATLAB การสนับสนุนจากศูนย์ซอฟต์แวร์เป็นปัญหา sudo apt-get install matlab-supportหรือคุณสามารถใช้คำสั่งต่อไปนี้:

  2. สร้างไฟล์gedit ~/.local/share/applications/matlab.desktop. desktop ในเครื่อง: ด้วยเหตุผลบางประการการบันทึกไว้ใน / usr / share / applications ทำให้มันไม่ทำงานเมื่อฉันเข้าสู่ระบบครั้งแรก

  3. คัดลอกและวางรหัสต่อไปนี้และบันทึก การเปลี่ยนแปลงที่สำคัญคือบรรทัดStartupWMClass

    [Desktop Entry]
    Version=1.0
    Type=Application
    Icon=/usr/share/icons/matlab.png
    Name=Matlab
    Comment=Start MATLAB - The Language of Technical Computing
    Exec=matlab -desktop
    Terminal=false
    Categories=Development;
    StartupNotify=true
    StartupWMClass=com-mathworks-util-PostVMInit
    X-Ayatana-Desktop-Shortcuts=New_Window;
    
    [New_Window Shortcut Group]
    Name=New Matlab
    Exec=matlab -desktop
    
  4. เปิดการใช้งานโฟลเดอร์ที่คุณเพียงแค่บันทึกไฟล์ matlab.desktop nautilus ~/.local/share/applicationsนี้:

  5. ลากแล้วปล่อยไฟล์ matlab.desktop ไปที่ unity launcher


นี่เป็นสัญญาที่แท้จริง! อย่างไรก็ตามมีอะไรมากกว่าที่ฉันต้องทำ - หลังจากทำสิ่งนี้แล้วให้คลิกไอคอน Matlab ในตัวเรียกใช้งานของฉันทำสิ่งต่อไปนี้: 1) หน้าต่างสแปลชจะแสดงพร้อมไอคอนตัวแยกต่างหากของตัวเองและไอคอนที่ฉันคลิก ออก). 2) หน้าต่างสแปลชและไอคอนหายไปและไอคอนตัวเปิดใช้ฉันยังคงกระพริบ 3) ไอคอนหยุดกะพริบและไม่มีอะไรเกิดขึ้น
Tomas Aschan

ฉันได้ตรวจสอบด้วยว่าไฟล์ matlab.desktop เป็นของฉัน (ไม่ใช่รูท) และผู้ใช้ทุกคนมีสิทธิ์ในการอ่านและดำเนินการ
Tomas Aschan

อย่างไรก็ตามถ้าฉันเริ่มต้น Matlab จากเทอร์มินัลหรือ Guake มันจะใช้ไอคอนที่ฉันใส่ไว้ในตัวเรียกใช้งาน - ดังนั้นสิ่งที่ถูกต้อง =)
Tomas Aschan

หน้าจอเริ่มต้นจะแสดงขึ้นมาเอง แต่จะหายไป นี่เป็นเพราะมันมีระดับที่แตกต่างจากเครื่องเสมือน Matlab (โปรแกรมหลัก) เท่าที่ยังไม่ได้เริ่มฉันไม่แน่ใจ โดยเฉพาะอย่างยิ่งเมื่อคุณบอกว่ามันเริ่มต้นในเทอร์มินัล (ฉันสมมติว่าใช้คำสั่งเดียวกันmatlab -desktop)
Garrett Foster

ใช่ฉันใช้คำสั่งเดียวกัน matlab &สามารถใช้งานได้โดยไม่มีปัญหาเช่น-desktopสวิตช์ไม่จำเป็นเมื่อเริ่มต้นจากเทอร์มินัล
Tomas Aschan

1

ฉันอาจจะมาช้ากว่านี้นิดหน่อย แต่ฉันสามารถทำสิ่งนี้ได้โดยการเพิ่มรายการในแอปพลิเคชัน 'เมนูหลัก' ฉันระบุว่ามันเป็น 'แอปพลิเคชัน' จากนั้นให้เส้นทางแบบเต็มไปยังไฟล์ที่เรียกใช้งานได้ในไดเรกทอรี MATLAB ว่าเป็นคำสั่ง

ฉันยังต้องเพิ่มการตั้งค่าสถานะ '-desktop' (โดยไม่ใส่เครื่องหมายอัญประกาศ) นอกจากนี้ฉันยังต้องใช้แฟล็ก '-glnx86' เนื่องจากฉันใช้ Student Version บนระบบ 64 บิต แต่ก็ใช้งานได้ดี

ฉันจัดการเพื่อรับไอคอนจากเว็บไซต์นี้

ซึ่งสามารถอยู่ในเมนูแอปพลิเคชันแล้วลากลงไปในตัวเรียกใช้งาน สิ่งเดียวที่ทำตัวแปลก ๆ ก็คือเมื่อฉันคลิกที่มันไอคอน MATLAB อื่นจะปรากฏขึ้นในตัวเรียกใช้งานแทนการใช้งานที่มีอยู่แล้วเท่านั้น หากใครสามารถหาวิธีแก้ไขปัญหานี้ได้นั่นก็คงจะดี ... แต่ฉันก็สามารถอยู่กับมันได้เหมือนเดิม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.