[MatLab] Tekst naar scherm outputten

Pagina: 1
Acties:
  • 304 views sinds 30-01-2008

  • Knakker
  • Registratie: April 2000
  • Laatst online: 17:20
Ik moet dus voor m'n studie ook in MatLab wat in elkaar flansen. Da's erg makkelijk met een beetje programmeer-ervaring (tot m'n 13e niks anders gedaan ;)) maar nu zit ik vast op iets ongelovelijk simpels.

Hoe gooi ik tekst op het scherm?

Ik heb me wezenloos lopen zoeken, het hele MatLab handbook doorgewerkt, internet afgestruind - ik kan alleen maar functies vinden om tekst naar een bestand of printer kan sturen.

De bedoeling (geef maar geen commentaar of het niveau van de opdracht ;)): print de tafel van 3 in de vorm '1 keer 3 is 3', '2 keer 3 is 6', etc.

Nou ja, dat zou dus zoiets moeten zijn:

code:
1
2
3
for i = 1 : 10
   naar-scherm-schrijf-functie(i + " keer 3 is "+ i*3);
end


Maar wat is die functie? Ik kan dus écht niks vinden. disp() is er wel, maar die's alleen voor het weergeven van variabelen/matrices zonder 'A =' ervoor.

Geef mij maar een Warsteiner.


  • pep_82
  • Registratie: November 2000
  • Laatst online: 18-11 13:43
plot of stem dit commando tegenover een x of y as

  • Knakker
  • Registratie: April 2000
  • Laatst online: 17:20
Oh ja, ik ben ook allemaal grafische functies tegengekomen. Maar dat wil ik helemaal niet - ik wil gewoon de tekst in het standaard Matlab-scherm zetten!

Geef mij maar een Warsteiner.


  • Knakker
  • Registratie: April 2000
  • Laatst online: 17:20
[dubbelpost]

Geef mij maar een Warsteiner.


  • windancer
  • Registratie: Maart 2000
  • Laatst online: 16-11 19:10
Kijk eens naar disp() in combinatie met sprintf().

  • Knakker
  • Registratie: April 2000
  • Laatst online: 17:20
Ik had beide functies wel gezien (sprintf ook), maar dat leek me allemaal zo omslachtig!

Nou ja, dit werkt:

code:
1
2
3
for i = 1 : 10
   disp(sprintf('%d keer 3 is %d', i, i*3))
end


Bedankt!

Geef mij maar een Warsteiner.


  • Timmeah
  • Registratie: Maart 2004
  • Laatst online: 17-10 18:31
Ik zit een beetje met hetzelfde probleem. Ik moet een hele simpele interface maken en de knopjes gaat prima (met de functie erachter), echter een tekstlabeltje naast een knopje op een bepaald coordinaat wordt al een stuk lastiger. Ik heb echt flink gezocht en echt niks gevonden (behalve tuts over complexe applicaties).


Iemand idee?

Het volgende werkt al vrij goed:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
figure('MenuBar','none','Name','TimGUI','NumberTitle','off','Position',[400,250,500,500]);
 
uicontrol('Style','ToggleButton','String','Knop 1','Position',[150,400,100,20],...  
'CallBack','disp('je hebt een knop gedrukt, en deze blijft ingedrukt")');

uicontrol('Style','PushButton','String','Knop 2','Position',[150,370,100,20],...
'CallBack', 'programma_met_m_extensie');

uicontrol('Style','PushButton','String','Push3','Position',[150,340,100,20],...
'CallBack','disp(''Knop is ingedrukt'')');

uicontrol('Style','PushButton','String','Close','Position',[150,275,100,20],...
'CallBack','close');

[ Voor 49% gewijzigd door Timmeah op 10-12-2007 22:04 ]


  • Mad_Cow
  • Registratie: Februari 2002
  • Laatst online: 09-10 07:58
in plaats van disp sprintf kun je gewoon de functie fprintf gebruiken, die output gewoon naar het scherm
code:
1
2
3
for i = 1 : 10
   fprintf('%d keer 3 is %d', i, i*3)
end


interfaces maken in matlab weet ik niet zo, maar text in grafieken kun je altijd plaatsen met het commando text

[ Voor 29% gewijzigd door Mad_Cow op 10-12-2007 22:01 ]


Verwijderd

Een tekstlabel in Matlab is ook een uicontrol:

code:
1
hTextLabel = uicontrol('Style', 'text', 'Position', RECT, 'String', '<tekst hier>');


De tekst dynamisch wijzigen gaat via set():

code:
1
set(hTextLabel, 'String', '<andere tekst>');

  • Sigmund_Freud
  • Registratie: Oktober 2002
  • Laatst online: 18-04 08:52

Sigmund_Freud

Ignorance is bliss

Ik heb ook een vraag over het plotten van text.

Ik ben bezig om een programma te schrijven voor het toepassingsgebied van compressoren.

Het programmeren an sich gaat prima, het programma werkt en plot diverse figuren uit.

Vraag:

Hoe kan ik een extra window / figure laten verschijnen als pop-up met textstrings en dergelijke. Het idee is dat het programma later ook door andere mensen gebruikt gaat worden. het is dus zeer waardevol belangrijke aannames en parameter als pop-up te laten verschijnen en niet alleen als % text in de diverse m-files.

Voor de duidelijkheid ik ben dus niet op zoek naar text display in command line.

Het programma moet werken vanaf matlab versie 6.5

[ Voor 3% gewijzigd door Sigmund_Freud op 04-06-2008 14:37 ]

Ignorance is bliss


  • Sigmund_Freud
  • Registratie: Oktober 2002
  • Laatst online: 18-04 08:52

Sigmund_Freud

Ignorance is bliss

Het is me gelukt met een blanco figure zonder assen, en popups met de msgbox. Misschien niet het meest elegante maar het werkt wel.

Ignorance is bliss


  • pkuppens
  • Registratie: Juni 2007
  • Laatst online: 17-11 23:50
Sigmund_Freud schreef op donderdag 05 juni 2008 @ 08:37:
Het is me gelukt met een blanco figure zonder assen, en popups met de msgbox. Misschien niet het meest elegante maar het werkt wel.
Anders kijken naar 'guide'.
Kun je een hele UI maken, met label, text boxes, buttons, ...
En functies gebruiken om die te getten, setten, ..

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:13

Creepy

Tactical Espionage Splatterer

Open de volgende keer aub een eigen topic en let daarbij op Programming Beleid - De Quickstart. Een topic uit 2002 (!) daarvoor kicken is 9 van de 10 keer niet nodig.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.