load mat table to gui table

hello, i need to load specific data from my mat file to gui table u can see mat file in the picture https://www.mathworks.com/matlabcentral/answers/uploaded_files/85736/image.png i need to show specific data,
load Data_Plat.mat
[row,~] = size(Database_All);
data2 = cell(row,4);
for n = 1:row
data2{n,1} = Database_All.Plat{n};
data2{n,2} = Database_All.Nama{n};
data2{n,3} = Database_All.Jurusan{n};
data2{n,4} = Database_All.Status{n};
end
set(handles.uitable1,'Data',data2);
this is my code for show all data from mat file in to gui table, the question is, how can i just show 1 data, for example, data with number plat DD6713MT

 Accepted Answer

Firstly, a much simpler version of your original code:
data_plat = load('Data_Plat.mat');
Database_All = data_plat.Database_All;
data2 = table2cell(Database_All(:, {'Plat', 'Nama', 'Jurusan', 'Status'}));
set(handles.uitable1, 'Data', data2);
If you want to filter your table to only include the rows that match a certain value, replace the : above by your filter, eg.:
data2 = table2cell(Database_All(strcmpi(Database_All.Plat, 'DD6713MT'), {'Plat', 'Nama', 'Jurusan', 'Status'}));

5 Comments

thanks buddy, its work, but i have 1 more question, i create video license plate recognition, variable noplate replace 'DD6713MT', how can that table show more data if 2 or more car are succesfully recognition,?
The code above will show all rows that match the filter, not just the first one.
If you want to filter several numbers at once use ismember instead of strcmp. Note that ismember does not have the case insensitive equivalent of strcmpi:
Database_All(ismember(Database_All.Plat, {'DD6713MT', 'AB1234CD'}), {'Plat', 'Nama', 'Jurusan', 'Status'}) %keep 'DD6713MT' and 'AB1234CD'
how about keep showing data in table even the car has pass away, are u have solution?
I have no idea what the above sentence is saying, particularly "the car has pass away"
sorry, my englhis so bad, it mean when my system succes read noplate from a car, then data in table is missing when car is gone, i want data in table still exist even noplate alrdy not show in system,

Sign in to comment.

More Answers (1)

If you are asking how to get the value of row 1 column 2 of your data2 cell, try
no_plat = data2{1,2}; % get row 1 column 2 value of data2

7 Comments

not just for row 1, but it show if i type the number plat,
Can you elaborate more on your question?
What is your input and what do you expect to be the output?
If you want to search for relevant value of data2 based on the number plat:
First, search data2 for any desired keyword (in this case "DD6713MT"),
[rowid,colid] = find(ismember(data2,'DD6713MT'));
Then use rowid or colid to retrieve the information you want,
relevant_data = data2(rowid,:);
EDIT mistakenly put curly braces instead of normal braces.
the input is number of plat, n the output is data for that plat show in table
i still got error message from ur code, Error using cell/ismember (line 34) Input A of class cell and input B of class char must be cell arrays of strings, unless one is a string.
Error in contoh>pushbutton1_Callback (line 89) [rowid,colid] = find(ismember(data2,'DD6713MT'));
I just realized that data2 is in table format.
To search specific string in plat,
idx = find(strcmpi('DD6713MT',data2.Plat));
To return the values of relevant table index
relevant_data = data2(idx);
Be aware that relevant_data is still in table format.
its still erorr Attempt to reference field of non-structure array.
Error in contoh>pushbutton1_Callback (line 86) idx = find(strcmpi('DD6713MT',data2.Plat));
can u tell me how can i use that code, i put that code in inside for n try too in out side for, ty for u attention buddy
find is rarely needed. In particular:
idx = find(somelogicalexpression);
result = somevector(idx);
is the same as
result = somevector(somelogicalexpression);
The latter being faster as well.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!