How to select a submatrix from a bigger one?

2 views (last 30 days)
So, I've got an Excel file that contains a matrix that's over 50 columns wide, and a Matlab script that uses xlsread to extract that matrix and do some computations on it.
But, the user of the script might not want to use the whole matrix, he might only want 15 columns from it, for example.
Now I'd need to write a code that would allow a user to select which columns he'd like to use in his computations. Anyone have an idea for an elegant / convenient / user friendly solution?

Accepted Answer

Image Analyst
Image Analyst on 3 Aug 2015
The best way would be to use ActiveX (if you're on Windows) and launch the file, then put up a message box telling the user to go to Excel and select columns. Then come back to the message box and click OK and then use ActiveX methods to extract only those columns that the user highlighted. I don't have any code that does exactly that but I can attach a demo of how you can open a workbook with ActiveX and do some things, like read from it. You just need to find the right ActiveX command to read the selected range. To find out what the method is, record a macro in Excel (this is easiest) or see the documentation https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range_methods.aspx

More Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 3 Aug 2015
Edited: Azzi Abdelmalek on 3 Aug 2015
idx=input('choose your 15 columns')
M=A(:,idx)

Community Treasure Hunt

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

Start Hunting!