Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Interazione e Multimedia, 9 CFU => Topic started by: strikajici_fx on 29-01-2010, 18:27:35



Title: interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 29-01-2010, 18:27:35
 .penso se volessi nelle interfacce in matlab chiedere all'utente di mettere dei dati in input che funzione dovrei usare?  .penso

grazie per la cortese attenzione....  .ciaociao .ciaociao


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: thomas89 on 29-01-2010, 20:29:05
non ne sn sicuro xkè ankora nn l'ho provate, ma prova se puoi creare un tasto e cn l'editor scrivi il comando "input"... se lo farò te lo dirò  :yoh


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 29-01-2010, 20:55:10
puoi usare le edit box solo che io vorrei che comparissero solo nel momento oppurtuno quando devo usare la funzione con i relativi parametri..e poi scomparire ad es se uso una funzione senza parametri e questo è un pò un problema  .sisi


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 29-01-2010, 21:46:22
puoi usare le edit box solo che io vorrei che comparissero solo nel momento oppurtuno quando devo usare la funzione con i relativi parametri..e poi scomparire ad es se uso una funzione senza parametri e questo è un pò un problema  .sisi

era proprio per questo che volevo una funzione che mi permettesse di aprire una finestra di input  :"-(


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 29-01-2010, 22:07:19
mi sto scervellando anche io con questo problema  :-)| :-)|


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: leviadragon on 29-01-2010, 22:25:10
Trovato!!!

ecco il codice:

prompt = {'testo per input 1','testo per input 2','testo per input 3'};
dlg_title = 'Inserire gli input';
num_lines = 1;
def = {'20','testo','0'};
answer = inputdlg(prompt,dlg_title,num_lines,def);


fate copia ed incolla ..la sintassi è complessa poichè il matlab è contorto già di suo  :-)|


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 29-01-2010, 22:31:12
non ho capito una virgola  .bah :boh :-)| :[Emoticon] Asd: domani lo provo .wink


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 29-01-2010, 23:12:57
non ho capito una virgola  .bah :boh :-)| :[Emoticon] Asd: domani lo provo .wink
.quoto


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: leviadragon on 29-01-2010, 23:15:56
non ho capito una virgola  .bah :boh :-)| :[Emoticon] Asd: domani lo provo .wink


 perchè , pensi che io l'abbia capito? :boh

 :"-( poveri noi


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: rox on 30-01-2010, 01:04:29
ho fatto copia e incolla ma non ho capito come poi li vado a prendere questi parametri !!qualcuno me lo potrebbe spiegare??


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 30-01-2010, 16:15:23
aaah bello...ma dove l'hai trovato?magari nel contesto riesco a capire la logica  .smile


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 30-01-2010, 16:22:49
aaah bello...ma dove l'hai trovato?magari nel contesto riesco a capire la logica  .smile

il sig levia l'ha trovato sul sito di matlab.....  .whistling


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 30-01-2010, 16:23:51
eh bè bisogna vedere dove precisamente xd


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Zeridos on 30-01-2010, 16:36:40
Ho trovato questa documentazione con esempio in merito, magari potrebbe essere utile per capirne l'uso:

Quote
# A. Using the Keyboard. Use the 'input' command for a single line of input, and the 'inputdlg' command for multiple lines, as described below.

# INPUTDLG: This command is useful for taking in multiple lines from the keyboard all at once. The format is like this: inp=inputdlg(prompts,title,lineno,defaultanswers). The four arguments (prompts, title, lineno, and defaultanswers) are variables; they must be defined in advance.
# The result of the operation is returned to a variable named inp. It contains strings (no numbers) in a cell array. Likewise, the prompts and default answers must be strings stored in cell arrays. The title is a string; the lineno is a number. Whew!
# The inputs (arguments) to the operation should be set up in advance. For example, suppose you want to acquire input for a text label on a graph. You might want to know three things: the string itself (the text label), its font size, and its color. The text string of course will be a string, the font size will be a number, and the color will be a three-number array (i.e., RGB mode), like [1 0 0] for red.

prompts={'Text?', 'Font size?', 'Color? (use RGB, e.g., [1 0 0] for red)'}; % Set up prompt - a cell array of 3 strings
title='Title'; % just a string
lineno=1; % this is the number of lines to allow for each entry - almost always 1
defaultanswers={'', '12', '[1 0 0]'}; % another cell array of 3 strings
inp=inputdlg(prompts,title,lineno,defaultanswers); % this makes the dialog box
if isempty(inp{1}); return; end % If no text entry, abort % Abort if no string is entered
str=inp{1}; % unpack the string from the cell array
fsize=str2num(inp{2}); % unpack and convert to a number
fcolor=str2num(inp{3}); % unpack and convert to numbers
text('string',str,'fontsize',fsize,'color',fcolor) % Add the text

Fonte: QUI (http://www.uchsc.edu/physiology/wjb/matlab/matlab2003b.htm)

Ciauz


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 30-01-2010, 16:50:34
 :-OK :-OK :-OK
ho anche letto l'help di matlab che dice all'incirca le stesse cose..
dunque riepilogando per chi non ha voglia di leggere in inglese  .whistling
il comando
answer=inputdlg(prompt,name,numlines,defaultanswer,options);
prende come parametri:
prompt che è un array per i titoli degli input
name è il nome della finestra
numlines è il numero di righe che devono avere le caselle per gli input
defaultanswer sono i parametri predefiniti
options sono opzioni aggiuntive ma queste non le ho capite bene però direi che mi accontento del resto  .smile


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 30-01-2010, 17:24:29
da notare che answer è un cell array
Quote
Cell array sono array multidimensionali  i cui elementi sono copie di altri array.

Un cell array di matrici vuote può essere creato con la funzione cell seguita dalle dimensioni del cell array tra parentesi tonde (stessa sintassi di ones, zeros,…).

Spesso un cell array è definito per enumerazione, racchiudendo gli elementi, che sono array con differenti dimensioni tra parentesi graffe:

 

>> C={zeros(2,1,3) sum(A) prod(prod(A))}

 

C =

 

    [2x1x3 double]    [1x4 double]    [2.0923e+013]

 

Questo è un 1x3 cell array. I primi due array sono troppo grandi per essere stampati, ma la terza cella contiene un solo numero che viene visualizzato.

 

Per manipolare il contenuto di una delle celle di un cell array è necessario usare  il nome dell’array seguito da parentesi graffe che racchiudono gli indici della cella desiderata (per esempio C{3} contiene  2.0923e+013). I cell array contengono copie di array, non puntatori ad array.

 

Array tridimensionali possono essere usati per memorizzare una serie di matrici delle stesse dimensioni. Cell array possono essere usati per memorizzare una serie di matrici di differenti dimensioni.

e inoltre i suoi elementi sono stringhe quindi per utlizzarli come numeri c'è bisogno del comando wstr2num  :-OK


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 30-01-2010, 19:39:48
scusate, ma inputdlg restituisce una stringa?  :boh


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: Vivynz on 30-01-2010, 19:44:10
no restituisce un cell array di stringhe  .smile


Title: Re:interfaccia in matlab: interagire con l'utente
Post by: strikajici_fx on 30-01-2010, 19:45:01
scusate, ma inputdlg restituisce una stringa?  :boh
scusate... non avevo visto il post precendente....  :-K ...sorry