Effacer les filtres
Effacer les filtres

Arrays have incompatible sizes for this operation error while checking dropdown.value not equal to a char value

21 vues (au cours des 30 derniers jours)
I have created an app in appdesigner and it has a dropdown. And I check the value of this dropdown to a string value.
function SelectBatteryDropDownValueChanged(app, event)
if app.SelectBatteryDropDown.Value ~= 'none'
end
end
'none' is one of the values initialised to the dropdown. Now a select a value from the dropdown I expect the program to check first if the value is not equal to 'none' and if true execute some code. But It is giving an error :
Arrays have incompatible sizes for this operation.
This doesnt make any sense since both 'none' and app.SelectBatteryDropDown.Value are of type char, I checked to make sure. Yet this error is coming. Why is that? How can I fix this. Thank you.

Réponse acceptée

Voss
Voss le 16 Juil 2024 à 13:14
Modifié(e) : Voss le 16 Juil 2024 à 13:19
Don't use == or ~= to compare character arrays, use strcmp, i.e.:
if ~strcmp(app.SelectBatteryDropDown.Value,'none')
because == and ~= perform element-by-element comparison (just as they do with numeric arrays), which in the case of comparing character arrays, is comparing character by character, e.g.:
'some' == 'none' % compares each character in 'some' to the corresponding character in 'none'
ans = 1x4 logical array
0 1 0 1
'ok' == 'none' % cannot element-wise compare a two-element character vector with a four-element one
Arrays have incompatible sizes for this operation.
  3 commentaires

Connectez-vous pour commenter.

Plus de réponses (0)

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