Strings cannot be compared
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Walter Roberson
am 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 Kommentare
Walter Roberson
am 30 Jan. 2017
I wish they had used a different word, but I am not sure what other word they might have used.
Guillaume
am 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 Kommentare
Siehe auch
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!