Getting numbers of entries in uitable
4 views (last 30 days)
Show older comments
Hi guys,
I have a uitable for different entries datas, for each entry i want to count in three edit text boxes the numbers of rows wich contain different values
For each row where in the nineth column is find 'Corn'
For each row where in the nineth column is find 'Rice'
For each row where in the nineth column is find 'Flour'
I tried this but every time i change the entry with a row with different value it stops:
new_data is 1x33 3976 cell
the following is under a push button
column_name = new_data(:,9);
match_corn = strcmp(column_name,'Corn');
match_rice = strcmp(column_name,'Rice');
match_flour = strcmp(column_name,'Flour');
if match_corn == 1;
count_corn = length(match_corn);
set(handles.edit3,'String',count_corn);
end
if match_rice == 1;
count_rice = length(match_rice);
set(handles.edit4,'String',count_rice);
end
if match_flour == 1;
count_flour = length(match_flour);
set(handles.edit5,'String',count_flour);
end
could you tell me where is my mistake?
0 Comments
Accepted Answer
Voss
on 31 May 2022
column_name is a vector, so strcmp(column_name,'Corn') is a vector (of class logical), so when you do:
if match_corn == 1
that condition will be considered true only if all elements of match_corn are true, i.e., all elements of column_name are 'Corn'.
Instead, you want to count the number of non-zero elements of match_corn, which you can do with nnz:
column_name = new_data(:,9);
match_corn = strcmp(column_name,'Corn');
match_rice = strcmp(column_name,'Rice');
match_flour = strcmp(column_name,'Flour');
count_corn = nnz(match_corn);
set(handles.edit3,'String',count_corn);
count_rice = nnz(match_rice);
set(handles.edit4,'String',count_rice);
count_flour = nnz(match_flour);
set(handles.edit5,'String',count_flour);
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!