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

 채택된 답변

Guillaume
Guillaume 2017년 8월 17일

0 개 추천

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

Yusran Said
Yusran Said 2017년 8월 17일
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,?
Guillaume
Guillaume 2017년 8월 17일
편집: Guillaume 2017년 8월 17일
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'
Yusran Said
Yusran Said 2017년 8월 17일
how about keep showing data in table even the car has pass away, are u have solution?
Guillaume
Guillaume 2017년 8월 17일
I have no idea what the above sentence is saying, particularly "the car has pass away"
Yusran Said
Yusran Said 2017년 8월 17일
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,

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Ilham Hardy
Ilham Hardy 2017년 8월 17일

0 개 추천

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

Yusran Said
Yusran Said 2017년 8월 17일
not just for row 1, but it show if i type the number plat,
Ilham Hardy
Ilham Hardy 2017년 8월 17일
편집: Ilham Hardy 2017년 8월 17일
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.
Yusran Said
Yusran Said 2017년 8월 17일
the input is number of plat, n the output is data for that plat show in table
Yusran Said
Yusran Said 2017년 8월 17일
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.
Yusran Said
Yusran Said 2017년 8월 17일
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.

댓글을 달려면 로그인하십시오.

카테고리

태그

질문:

2017년 8월 17일

댓글:

2017년 8월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by