Avoid overwriting value of variable

1 Ansicht (letzte 30 Tage)
Ghenji
Ghenji am 14 Feb. 2018
Bearbeitet: Stephen23 am 14 Feb. 2018
I am having following code:
Source_files = [specified directory]
len = length(Source_files);
for j = 1 : len
[status,sheets] = xlsfinfo(Source_files)
sheetIndex = find(strncmp(sheets, '#', 1));
end
sheetIndex variable's value gets overwritten on every iteration. I want to have a variable wanted_sheets constituting names of all the sheets starting with '#' from all the files.

Akzeptierte Antwort

Stephen23
Stephen23 am 14 Feb. 2018
Bearbeitet: Stephen23 am 14 Feb. 2018
Use indexing:
Source_files = [specified directory]
N = numel(Source_files);
C = cell(1,N);
for k = 1:N
[status,sheets] = xlsfinfo(Source_files{k});
C{k} = find(strncmp(sheets, '#', 1));
end
  2 Kommentare
Ghenji
Ghenji am 14 Feb. 2018
Bearbeitet: Ghenji am 14 Feb. 2018
Thank you for your reply, Now this gives me only sheet number for this files. How do i get sheetnames?
Secondly, this numbers(sheet no.) are repeating how can i avoid this?
lets say I have these files with their sheetnames:
File1 : #sheet1, sheet2, #sheet3, sheet4, sheet5
File2 : sheet1, sheet2, #sheet3, #sheet4, sheet5
File3 : #sheet1, sheet2, #sheet3, sheet4, sheet5
This is how i want,
wanted_sheet = #sheet1, #sheet3, #sheet4
Stephen23
Stephen23 am 14 Feb. 2018
Bearbeitet: Stephen23 am 14 Feb. 2018
First collect the sheet names, then do any processing after the loop:
N = numel(Source_files);
C = cell(1,N);
for k = 1:N
[~,C{k}] = xlsfinfo(Source_files{k});
end
C = [C{:}];
C = C(strncmp(C,'#',1));
C = unique(C)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by