Using Matlab App Designer, error using drop down list. Incompatible array sizes.
2 ビュー (過去 30 日間)
古いコメントを表示
Im atttempting to use a drop down list to select a country, which will pull information from a website and populate an Edit Field(text). The code works for the first two countries, when I use the third I get an incompatible array size error.
data = webread('https://restcountries.com/v3.1/all');
data = webread('https://restcountries.com/v3.1/all');
app.Country_Select.Value = 'Niger';
if app.Country_Select.Value == 'Jordan'
app.SpokenLanguageEditField.Value = data{1,1}.languages;
elseif app.Country_Select.Value == 'Brazil'
app.SpokenLanguageEditField.Value = data{2,1}.languages;
else app.Country_Select.Value == 'Niger'
app.SpokenLanguageEditField.Value = data{9,1}.languages;
end
app.SpokenLanguageEditField.Value
0 件のコメント
採用された回答
Voss
2023 年 7 月 17 日
Instead of using == to compare character vectors, use strcmp.
val = app.Country_Select.Value;
if strcmp(val,'Jordan')
idx = 1;
elseif strcmp(val,'Brazil')
idx = 2;
else
idx = 9;
end
app.SpokenLanguageEditField.Value = data{idx,1}.languages;
== compares element-by-element, i.e., character-by-character in this case since you're comparing character vectors, so the number of elements must be the same, i.e., the character vectors must be the same length. If the character vectors are not the same length, as in 'Niger' == 'Jordan', you'll get the error you got.
You could also use switch/case.
val = app.Country_Select.Value;
switch val
case 'Jordan'
idx = 1;
case 'Brazil'
idx = 2;
otherwise
idx = 9;
end
app.SpokenLanguageEditField.Value = data{idx,1}.languages;
5 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Develop Apps Using App Designer についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!