Untitled
%esercizio 1 %fare lista di nomi e alcuni sono presenti più volte. Quali e quante volte? %ismember serve per sapere se è giusto l'esercizio e da 1 se è giusto 0 se no. %quando lavoro con stringhe devo usare le doppie virgolette ListaNomiDup= ["anna", "luca", "marco", "luca"]; [nomi, occorrenze]= contaoccorrenze(ListaNomiDup); risultato=ismember("anna", ListaNomiDup); disp(nomi) disp(occorrenze) function [nomi,occorrenze]=contaoccorrenze(ListaNomiConDuplicati) %parentesi perchè è una lista nomi= []; %per dare un vettore in cui inserire risulato occorrenze= []; for i=1:length(ListaNomiConDuplicati) %bisogna far scorrere la lista nomecorrente=ListaNomiConDuplicati(i); %bisogna capire se sono già stati nominati %stringcompare è un codice che permette di dire se due stringhe sono uguali %se c'è yes sono uguali sennò no. %la funzione find serve a dare un vettore con gli stessi indici di un %vettore dato indice= find(strcmp(nomi, nomecorrente),1); %confronta nomecorrente all'interno di nomi che all'inizio sarà vuoto, find cerca la posizione if isempty(indice) %funzione che prende un array e verifica se è vuoto o meno nomi=[nomi, nomecorrente]; %avrà solo un nome all'inizio occorrenze=[occorrenze,1]; %avrà 1 occorrenza %poi si fa con tutti gli altri nomi fino a quando il nuovo nome %corrente troverà già il suo all'interno di nomi else occorrenze(indice)=occorrenze(indice)+1; %qui incrementerà quando ci sono più nomi end end end
Leave a Comment