How do i write the If-statement with characters?

7 vues (au cours des 30 derniers jours)
Trym Johannes Berg
Trym Johannes Berg le 14 Sep 2016
Modifié(e) : Adam le 14 Sep 2016
I have this code:
function oving1 = oving(navn)
if navn == 'Mathias'
y1 = [72,15,36,61];
bar(y1,'g');
axis([0 5 0 100]);
set(gca,'XTickLabel',{'Flegmatisk', 'Kolerisk', 'Sangvinsk', 'Melankolsk'});
xlabel('Temperament');
ylabel('Prosent');
fprintf('Kommentar:\n Mathias er en veldig hyggelig og rolig person som sjeldent hisser seg opp over problemer.\n Han kan til tider være ganske tungsindig og bære nag, men han er til gjengjeld optimistisk\n');
elseif navn == 'Trym'
y2 = [86,35,60,25,92];
bar(y2,'r');
axis([0 7 0 100]);
set(gca,'XTickLabel',{'Ekstroversjon', 'Medmenneskelighet', 'Kontroll', 'Temperament', 'Intellekt'});
xlabel('Personlighet');
ylabel('Prosent');
fprintf('Kommentar:\n Jeg ser på meg selv som en veldig ekstrovert person som sjeldent klarer å kontrollere temperamentet mitt.\n Til tider kan jeg har for lite empati for andre mennesker. Jeg liker å tenke, reflektere og løse nye situasjoner. Desverre er jeg nok ikke den mest punktlige personen :( \n');
else
disp('Ikke gyldig navn');
end
end
When i try to run in with 'Trym', it just stops me at line 4 with:
Error using == Matrix dimensions must agree.
Error in oving (line 4) if x == 'Mathias'
How can i solve this so i can type diffrent names??

Réponses (1)

Adam
Adam le 14 Sep 2016
Modifié(e) : Adam le 14 Sep 2016
You should use
strcmp( navm, 'Mathias' )
for comparing strings.
Equality test (==) would only work if the two strings are identical length which is usually not very helpful!

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by