How to replace multiple xlsread commands
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have an older matlab code that reads multiple areas of a single excel sheet using multiple xls read commands. For example:
[NUM1 TXT1] = xlsread(myfile.xlsx,'Sheet1','A1:C10')
[NUM2,TXT2]= xlsread(myfile.xlsx,'Sheet1','Z200:AB500');
The data in the spreadsheet can be numerical or text, so having them split out like xlsread is handy for me (I use both the text and numerical data). I want to replace the multiple xls read commands with a single command to speed up the code, because the excel files are large and it takes a while to get all the data. I'm playing with a single readcell command and trying to get the data locations sorted out from the cell array but struggling with the multiple data types.
data=readcell(myfile.xlsx,'Sheet','Sheet1','Range','A1:AB500')
data1 = data(1:10,1:3)
Now data 1 is a cell array that contains A1:C10, but I need to get the numeric data and text data out of it in a way that replicates the [NUM1 TXT1] that I get from xlsread. Any ideas?
0 Kommentare
Akzeptierte Antwort
Matt J
am 24 Apr. 2025
Bearbeitet: Matt J
am 24 Apr. 2025
data1 = {'dog',1,3,'cat'; 10 12 'fish' 17}
idx=cellfun(@isnumeric,data1);
NUM1=nan(size(data1));
NUM1(idx)=cell2mat(data1(idx))
TXT1=data1;
TXT1(idx)={''}
5 Kommentare
Matt J
am 24 Apr. 2025
I would do,
nanmap=isnan(NUM1);
I=all(nanmap,2);
J=all(nanmap,1);
NUM1(I,J)=[];
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Spreadsheets finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!