Analisi database

di il
4 risposte

Analisi database

Salve a tutti ho un problema...dovrei analizzare un database simile a questo
mele 5.2 4.3
pere 39.5 42.9
banane -5.15 -7.40
uva 3.58 2.43
ananas -3.5 7.45

l'idea sarebbe che l'utente deve inserire il comando, e dalla lettura dei database mi va a mettere i valori in 2 parametri

es:

inserire frutta: mele
A=5.2
B=4.3

come devo fare? grazie

4 Risposte

  • Re: Analisi database

    Domanda: dove viene definito il database?
    [*] in un file di testo che deve essere letto?
    [*] in un file ".mat" che deve essere caricato?

    Nel primo caso, il formato è esattamente quello che hai riportato nella domanda o ci possono essere righe con formattazione diversa?

    A prescindere (solo per il momento) dal formato del database, vuoi un creare un semplice script che scrive nella CommandWindow il risultato o vuoi creare una GUI?

    Hope this helps.
  • Re: Analisi database

    Il database è un file .txt
    il formato è esattamente quello
    nome numero numero

    per il momento mi basta che restituisca in 2 valori nella commandWindow
    la scrittura di una GUI mi aiuta a visualizzare dei grafici legati a questi risultati? non sono molto partico! XD
  • Re: Analisi database

    Per ottenere i risultati solo dalla CommandWindow (cioè senza una GUI) potresti scrivere una funzione la quale:

    [*] riceve in input il nome del file (database)
    [*] apre il file con la funzione "fopen"
    [*] legge il file con l'istruzione "textscan" (che ritorna un cellarray)
    [*] verifica la presenza della stringa nel database (il cellarray in cui è stato caricato il file) e, se presente, ne identifichi la posizione
    [*] ritorni i valori corrispondenti all'indice trovato al punto precedente

    Di seguito una possibile implementazione della funzione:
    function [A,B]=leggi_database(file_name)
    % Verifica dell'esistenza del file di input
    if(exist(file_name,'file'))
       % Apertura del file di input
       fp=fopen(file_name,'rt');
       % Lettura del file
       C=textscan(fp,'%s%f%f')
       % Chiusura del file
       fclose(fp);
       % Processing del datrabase
       % C{1} contiene le stringhe
       % C{2} contiene la prima colonna di numeri
       % C{3} contiene la seconda colonna di numeri
       %
       % Conversione in minuscolo delle stringhe (consente di evitare errori
       % dovutri solo al fatto che si usino lettere maiuscole e minuscole
       frutta=lower(C{1});
       % Richiesta di input all'utente e conversine in misuscolo della stringa
       % inseritqa dall'utente
       fr=lower(input('Inserire frutta: ','s'))
       % Identificazine della presenza della stringa inserita dall'utente nel
       % database
       idx=find(ismember(frutta,fr))
       % Se è presente, vengono assegnati i valori corrispondenti
       if(~isempty(idx))
          A=C{2}(idx)
          B=C{3}(idx)
       else
          % Se non è presente viene assegnato NaN
          A=NaN
          B=NaN
       end
    else
       % Se il file di input non esiste viene generato un messaggio di errore
       error([file_name ': file not found'])
    end
    
    
    Hope this helps.
  • Re: Analisi database

    Grazie mille!!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte