Untitled
unknown
plain_text
a year ago
1.5 kB
4
Indexable
%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
Editor is loading...
Leave a Comment