vinduer - Matlab på cmd (winxp)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lige begyndt at eksperimentere med Matlab, og siden jeg er brugt til Vims grænseflade, forsøger jeg at holde ud af Matlabs redaktør så meget som muligt. Hvad der bekymrer mig er, at hver gang jeg starter en .m-fil, bringer det op til grænsefladen.


Er der en måde at starte test.m fra en cmd linje, og lad den give output ud på en cmd, som det normalt ville gøre i Matlabs miljø.
Noget som en 'Matlab-skal' (som Python s, kun Matlabs)?

Bedste reference


For at besvare dit spørgsmål skal du starte matlab som denne:


matalb -nodesktop -nosplash


Dette virker på både linux og windows. På Linux skriver du dette på kommandoprompten, og matlab vil køre i samme kommandovindue i teksttilstand. Så du ville få den 'matlab shell' du ønskede. På Windows, cd i mappen, hvor Matlab er installeret, og skriv den samme kommando. Det åbner et strippet ned matlab kommandolinjevindue uden alle klokker og fløjter på matlab-skrivebordet.


Nu i min personlige mening er matlab-editoren med sin integrerede debugger din ven. Det har også emacs nøglebindinger, hvis det hjælper. Det er også lettere at udføre kommandoer og se resultaterne i matlab desktop, så når matlab køres i tekst-tilstand. Den eneste gang du virkelig vil bruge teksttilstanden er, hvis din matlab kode tager lang tid at løbe, og du er kun interesseret i det endelige resultat. Eller hvis du kører flere forekomster af matlab. Teksttilstanden tager meget mindre hukommelse, og i linux kan du nemt starte en kørsel fra kommandolinjen og sætte den i baggrunden.


Faktisk tjek kommandolinjens argumenter for matlab. Du kan gøre andre interessante ting, som om matlab udfører en enkelt funktion og afslut, en la perl, eller omdirigere et script til matlab som dette: matlab < script.m

Andre referencer 1


Er du virkelig villig til at gøre dev arbejde med ingen m-fil debugger? Synes for mig, der vil begrænse dig til praktisk talt trivielle programmer. Efter en meget kort læringskurve tror jeg, du finder den Matlab-integrerede debugger til at være fantastisk (og jeg er en VS-person).


Hvis du insisterer på at gøre det, er din bedste mulighed at kompilere dine m-filer for at være løbende alene. Det ville kræve adgang til (ikke billig) matlab compiler. [8]


Bemærk, at der er en væsentlig forskel mellem kompilatoren distribueret med matlab versioner op til 6,5 og de distribuerede med matlab 7+ (kender ikke compiler versionsnumrene). I 6.5 genererede compileren c-kode, det kunne være end redigeret og kompileret særskilt. Fra og med 7, kompileren lavede ikke kompilering, konvertering eller nogen kodegenerering for den sags skyld: at køre et 'kompileret' program i dag kører det næsten på en virtuel Matlab-maskine kaldet MCR - som omfatter næsten alle matlab-funktionaliteter . Det er en massiv en - MCR installatør (installatør!) Vejet 130M sidste gang jeg kontrollerede.

En del debat om dette kan stadig findes på nyhedsgrupper, men det er ikke vigtigt nu. Faktisk synes MCR-tilgangen tættere på hvad du søger. [9]


Og btw, for mig matlab -nosplash -nodesktop fungerer perfekt på windows - det lancerer matlab som en konsol, men det ville frata dig både en tekstredigerer og en debugger ...

Andre referencer 2


Hvad jeg ville gøre er:



  1. Start MATLAB

  2. Åbn ikke .m-filen i matlab

  3. Åbn filen i valgfri editor

  4. Kør funktionen fra MATLAB som normalt



Jeg kan ikke forestille mig nogen grund til, at det ikke ville fungere som MATLAB burde være ligeglad med, hvad der blev brugt til at redigere filen.


Dette vil ikke give dig en 'shell', men hele GUI, men jeg kan ikke tænke på nogen grund til, hvorfor du ikke vil have det, hvis det er tilgængeligt.

Andre referencer 3


På Linux-miljøer kan Matlab startes i tekst-tilstand


matlab -nosplash -nodesktop 


men det virker ikke på Windows. , der starter det i den nuværende shell. I Windows åbner dette et nyt vindue til tekst. Jeg ved ikke, at den kan køre inde i den nuværende konsol på Windows.


Måske er der en måde, du kan knytte til den, der kører den på http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/matlabwindows.shtmlu0026amp ; http://www.google.com/search? rlz=1C1GGLS\_enUS302US311 & sourceid=chrome & ie=UTF-8 &q=matlab + kommando + linje + windows>> automatiseringsserver-tilstand.


En anden mulighed, hvis du virkelig er desperat, kan være at lave en virtuel maskine og installere linux i den. Derefter forestiller jeg mig, at der er måder at konfigurere vim til at arbejde fint med Matlab (jeg er en emacs person i disse dage, og der er løsninger til emacs ).

Andre referencer 4


Jeg havde det samme problem som Kigurai. Jeg havde brug for at køre Matlab med Python, så jeg fandt denne løsning:


I Python:


import os

os.chdir('W:\monrépertoire')

os.spawnl(os.P\_NOWAIT, 'monscript.bat')


I monscript.bat:


matlab.exe -r interp\_3D  -nodesktop –nosplash

Andre referencer 5


Der er tilfælde, hvor der ikke er brug for meget debugging, og Matlabs tilstand skal bevares mellem tilkaldelser. Et (det eneste?) Eksempel ville være Emacs org-mode. det kan bruges til at skrive tekst interleaved med kode i henhold til læsbar programmering osv. Mens det er muligt at bruge kommentarer i Matlab og offentliggøre kode, det være sig HTML eller LaTeX, kræver det dog at forlade Emacs komfort. [10] [11] [12]


Der er et selvstændigt program til rådighed, der bruger Matlab-motoren til at evaluere kommandoer modtaget på stdin og dump resultatet. Denne særlige version mangler imidlertid støtte til multiline kommandoer som om/ellers/slut eller for/slut. Dette er en begrænsning af engEvalString, der forventer alt på én gang. Der er en grimme løsning, der gør den brugbar nok til org-mode. [13] [14] [15] [16]


#+begin\_src matlab :session *MATLAB* :exports none :cache no :results value
if 3>1
 'wow!!!'
end
#+end\_src

#+RESULTS:
: wow!!!