View Full Version : [MATLAB] Programmazione Grafica
franksisca
21-06-2006, 17:56
Ragazzi, mi servono delle dritte, e abbastanza urgentemente.
Eccovi quello che mi serve:
1) Fare un qualcosa del tipo "scelgo il file e carico", ovvero la classica opzione salva o apri di tutti i programmi, mi serve per il mio programmino MATLAB;
2) Inserire un grafico. Praticamente fare il plot nello spazio riservato durante la fase di creazione della GUI
3) Chiamare delle funzioni scritte in altri file
4) Utilizzare delle matrici per tutto il file(Tipo, carico i dati, premo un pulsante e mi fa dei calcoli sui dati caricati)
5) Catturate il valore dell TextArea e delle ComboBox.
Vi prego aiutatemi, altrimenti addio esame.
P.S.: Concettualmente sò cosa devo fare, infatti le funzioni in Matlab sono fatte, ma mi manca la parte grafica con matlab.
Grazie a tutti.
Varilion
21-06-2006, 21:28
1)matlab ha una consolle e può eseguire degli script.
Per fare uno script File->nuovo->M-file (o qualcosa del genere)
li apre l'editor per scrivere lo script, la funzione la sequenza di istruzioni, quel che è.
2)Fare un Grafico
x=[INIZIO:INCREMENTO:FINE] (es x=[0:1:3] nel vettore ci sarà 0 1 2 3 )
y= FunzioneDi(x) (es: y=sin(x) o y=exp(x) p y= 8.*x.^2+3)
il . indica che l'operazione va eseguita su tutti gli elementi del vettore.
Plot(x,y) fa il grafico
3) per invocare la funzione scrivi nella consolle
nomefunzione(parametro1, parametro2,...etc)
Il resto nn lo so :D
franksisca
21-06-2006, 22:21
1)matlab ha una consolle e può eseguire degli script.
Per fare uno script File->nuovo->M-file (o qualcosa del genere)
li apre l'editor per scrivere lo script, la funzione la sequenza di istruzioni, quel che è.
a me serve qualcosa del tipo "salva con nome", ma carica, praticaente, parlando in java, il JFileChooser, ma mi serve in MAtlab.
2)Fare un Grafico
x=[INIZIO:INCREMENTO:FINE] (es x=[0:1:3] nel vettore ci sarà 0 1 2 3 )
y= FunzioneDi(x) (es: y=sin(x) o y=exp(x) p y= 8.*x.^2+3)
il . indica che l'operazione va eseguita su tutti gli elementi del vettore.
Plot(x,y) fa il grafico
Il grafico lo sò fare, ma non sò come si inserisce nella parte riservatagli dalla gui.
3) per invocare la funzione scrivi nella consolle
nomefunzione(parametro1, parametro2,...etc)
Il resto nn lo so :D
nella console lo sò, quindi suppongo che serva la stessa cosa anche se sto scrivendo un MFile, vero???
Aspetto gli altri suggerimenti e intanto ti ringrazio.
franksisca
22-06-2006, 09:29
help
vermaccio
22-06-2006, 09:34
alzati e cammina, Lazzaro :)
http://amath.colorado.edu/courses/4720/2000Spr/Labs/Worksheets/Matlab_tutorial/matlabimpr.html
ed un esempietto
http://amath.colorado.edu/computing/Matlab/images.pdf
entrambi i link ci metono molti secondi ad aprirsi: evidentemente il server laggiù è una lumaca. abbi pazienza e si aprirà.
vermaccio
22-06-2006, 09:39
%
% A simple example on how to use 'imread' and
% 'imwrite' in Matlab to load and save an image.
%
%
% Load image 'Sans titre11.bmp' (file must be in the current matlab directory).
A = imread('Sans titre11.bmp','bmp');
% Convert the pixel values from unsigned char (0-255) to double type.
A = im2double(A);
% A, is a 3 dimensionnal array which contains all the pixels of the image.
% For example, pixel at row i and column j is defined by :
% A(i,j,1) = Red Component
% A(i,j,2) = Green Component
% A(i,j,3) = Blue Component
% A very ugly and slow processing which sets to black those pixels
% which light intensity is below a given threshhold.
rows = size(A,1);
colomns = size(A,2);
for i=1:rows
for j=1:colomns
if((A(i,j,1)*A(i,j,1)+A(i,j,2)*A(i,j,2)+A(i,j,3)*A(i,j,3))>0.9)
A(i,j,1) = 255;
A(i,j,2) = 255;
A(i,j,3) = 255;
else
A(i,j,1) = 0;
A(i,j,2) = 0;
A(i,j,3) = 0;
end
end
end
vermaccio
22-06-2006, 09:42
ma la vera domanda è: che devi farci?
se sai usare c++ alora le librerie openCV sono il meglio del meglio. e matlab è utilizzabile dentro c++.
franksisca
22-06-2006, 09:43
ok, anche se le immagini non mi interessano, comunque è sempre cosa buona e giusta saperlo.
Spero in altri suggerimenti
franksisca
22-06-2006, 12:10
Risposta al quesito numero 1:
uiimport('-file');
con questa chiamata si apre il wizard di loading dei file.
Aspetto per le altre, grazie comunque dell'aiuto.
4) In ogni funzione in cui ti serve la matrice devi fare così:
global matrix
matrix=...%modifichi la matrice
x=matrix(..) %leggi i dati da matrice
5) Come prima devi fare delle variabili globali, altrimenti Matlab non te le vede.
Per catturare una String da una text area fai cosi
global x
x=get(hObject,'String'); %oppure
x=str2double(get(hObject,'String')) %se ti serve il valore come double
Per quanto riguarda la seconda domanda non ho capito se nella tua gui hai inserito più grafici. Se ce n'è solo uno basta che chiami plot nell'm-file relativo al .fig.
franksisca
24-06-2006, 17:08
no, il grafico è uno solo, adesso provo, se o preoblemi ti faccio un fischio...:D
CIao e grazie
Mi sono dimenticata di dirti che per quanto riguarda la text area quel codice lo devi mettere nella funzione di callback relativa presente nell'm-file (basta che dalla .fig clicki col tasto destro sulla text area e selezioni function callback o qualcosa del genere)!
franksisca
25-06-2006, 09:18
Mi sono dimenticata di dirti che per quanto riguarda la text area quel codice lo devi mettere nella funzione di callback relativa presente nell'm-file (basta che dalla .fig clicki col tasto destro sulla text area e selezioni function callback o qualcosa del genere)!
Scusa se riscpondo solo ora, ma sono a casa nel tentativo(vano) di studiare un poco di +......
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.