How do i write the If-statement with characters?

7 visualizzazioni (ultimi 30 giorni)
Trym Johannes Berg
Trym Johannes Berg il 14 Set 2016
Modificato: Adam il 14 Set 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??

Risposte (1)

Adam
Adam il 14 Set 2016
Modificato: Adam il 14 Set 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!

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by