How do i write the If-statement with characters?

7 Ansichten (letzte 30 Tage)
Trym Johannes Berg
Trym Johannes Berg am 14 Sep. 2016
Bearbeitet: Adam am 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??

Antworten (1)

Adam
Adam am 14 Sep. 2016
Bearbeitet: Adam am 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!

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by