How To Sort Excel Sheet By Address In GUI

Hello,
I have an excel sheet that I have imported into MATLAB using the import tool. The Excel sheet has multiple types of cells, both numbers, characters, and both characters and numbers. (e.g. one column is either 'hip' or 'gable', another is simply numbers from 0-9, and a third is a combination of characters and numbers like '1000 Main St.')
In my code, I have each street listed in a listbox, and I've written "if" statements for each Value in the listbox. I can sort into a table the way I want with the column that only has numbers, but for mixed char/numbers and solely char, I cannot do it.
Here is a snippet of the code I have that works for the numbers (0-9):
%Import dataset in the GUI Opening Function. import1 is the function the Import Data created.
imported = import1('ExcelFile.XLSX','Complete Excel File DATA',1,713);
handles.Table = imported;
%listbox code
a = get(handles.SortRating,'Value');
T = handles.Table;
if (a==1)
%Table Creation for Ratings = 0
Rating0 = T.Rating<1;
names0 = {'Rating', 'Var2', 'Var3' , ....};
T0 = T(Rating0,names0);
table0 = table2cell(T0);
finaltable0 = [T.Properties.VariableNames; table0];
set(handles.uitable1,'Data', finaltable0 );
end
The above code displays all the data from the excel file for all Ratings = 0 in the excel sheet. As I said previously, I need this for char. and char. w/ numbers. Your help is appreciated!
Also, as a side note - Would this work better as a table or a structure? I have imported it as a table because it was what I know best.

4 Comments

Mark - consider using one of the sorting algorithms from the File Exchange. One such is Natural Order Filename Sort.
Geoff,
Thanks for the lead, although it's become a case of one answer spawning new questions.
1) To start, how would I cite the function created by Stephen Cobeldick?
2) On the coding side, while I see how this would allow me to sort the datapoints, how would I then be able to pick just a subsection of those to pass to the table in the GUI, as I do for each rating above?
Thank you again.
@Mark M: "Cite"? This function is published in the FileExchange and covered by the BSD license. Keep the license file beside the function. Or what do you mean by "citing"?
I do not understand the problem of picking "subsections". How are these sections defined?
@Jan Simon,
Here is an example of my data. In this example, I want to allow the user to choose the data they see based on the street name. So if the listbox has two choices, 'Main St.' and '2nd Ave.', and the user chooses 'Main St.', I want the table to populate with all the data from homes on Main St.
'34 MAIN ST' '66 MAIN ST' '99 MAIN ST' '70 MAIN ST' '74 MAIN ST' '22 2ND AVE' '8 2ND AVE' '5 2ND AVE'
I have tried to it in a way similar to that above, i.e. an if statement for each 'Value' of the listbox (1 being Main St, 2 being 2nd Ave, etc.) and then inside the if statement, the code needed to sort out and display just that subsection. In my above code, since the T.Rating is numerical, I can use normal operators like < and ==, but since this is both numbers and characters, I cannot use those operators.
Have I explained my problem a little better?

Sign in to comment.

Answers (0)

Products

Asked:

on 23 Jul 2017

Commented:

on 25 Jul 2017

Community Treasure Hunt

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

Start Hunting!