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

1 Ansicht (letzte 30 Tage)
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.

Akzeptierte Antwort

Voss
Voss am 16 Jul. 2024
Bearbeitet: Voss am 16 Jul. 2024
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 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Compiler 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