Strings cannot be compared
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
After I enter in the strings into the textboxes, they will not be compared. The errors said 'Error using == Matrix dimensions must agree.' Can someone help me fix this problem. Here is my following code. Thank you.
function pushbutton1_Callback(hObject, eventdata, handles)
x = get(handles.edit1,'String');
y = get(handles.edit4,'String');
if(x == 'Rice')
if(y == 'Noodle')
strcmp(x, y);
set(handles.edit2,'String','Eat rice for lunch');
end
end
if(x == 'Swimming')
if(y == 'Bowling')
strcmp(x, y);
set(handles.edit2,'String','Let's go swimming');
end
end
0 commentaires
Réponses (2)
Walter Roberson
le 30 Jan 2017
Those are not strings, those are character vectors. Strings were added in R2016b. To compare character vectors that might be of different length use strcmp()
2 commentaires
Walter Roberson
le 30 Jan 2017
I wish they had used a different word, but I am not sure what other word they might have used.
Guillaume
le 30 Jan 2017
You seem to sort of know that you need to use strcmp for comparing string since you've put a (useless in this case) strcmp inside your if. When comparing character vectors, you must always use strcmp
if strcmp(x, 'Rice') & strcmp(y, 'Noodle')
set(handles.edit2,'String','Eat rice for lunch');
end
Or, since R2016b, you could use the new string class, where comparison is a lot more intuitive since it uses ==
if string(x) == 'Rice' & string(y) == 'Noodle'
set(handles.edit2,'String','Eat rice for lunch');
end
0 commentaires
Voir également
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!