Export every third row from excel.

5 vues (au cours des 30 derniers jours)
Yang Hu
Yang Hu le 30 Avr 2022
Commenté : Voss le 3 Mai 2022
Hi all, I want to read the excel in matlab and get data of every third row from the first row till the end for all sheets. Each sheet is x and y data for 289 frames. I missed the last two rows of data so I also would like to round 289/3 up to the upper integer. Thank you so much.
  2 commentaires
dpb
dpb le 30 Avr 2022
So show us what you've done and where you had a problem...
>> ceil(289/3)
ans =
97
>>
Yang Hu
Yang Hu le 30 Avr 2022
Hello, this is my code so far. I think it can output the data I want but I don't know how to export it to excel. x1, y1 are the new data I want to output.
close all
global mu
SPACE_UNITS = 'µm';
TIME_UNITS = 'min';
%% If loading in individual sheets
sheets = sheetnames('4.4.22.xlsx');
filename = '4.4.22_15mins'; %update filename to describe
f = 289;
for i=1:size(sheets)
xy=readmatrix('4.4.22.xlsx', 'Sheet',sheets(i), 'Range','A1:B289');
B=xy(~isnan(xy)); %takes out a defect
if size(B, 1)==f*2 % f*2
if i==1
x1=xy(:,1);
y1=xy(:,2);
else
x1=[x1; xy(:,1)];
y1=[y1; xy(:,2)];
end
end
end
%%reshape input x and y
x=reshape(x1, f, []);
y=reshape(y1, f, []);
%% manipulate data in 15 mins time gap
x1 = x(1:3:end,:); %get every third x coordinate
y1 = y(1:3:end,:); %get every third y coordinate
f1 = ceil(f/3);%round up to upper integer

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 30 Avr 2022
sheet = 1;
data = zeros(97,0);
while true
try
new_data = readmatrix('4.4.22.xlsx','sheet',sheet);
catch
break
end
data(:,end+[1 2]) = new_data(1:3:end,:);
sheet = sheet+1;
end
size(data)
ans = 1×2
97 66
  6 commentaires
Voss
Voss le 1 Mai 2022
You're welcome!
Voss
Voss le 3 Mai 2022
@Yang Hu I didn't mean to ignore your question, I only saw it just now.
To answer: I learned MATLAB over several years, first using it for signal processing stuff in college and later at a job with a heavy MATLAB GUI development component (many years before AppDesigner was introduced). And I learn new aspects of it almost every day still, from seeing some of the creative answers here on this forum.
I don't have a specific reference I can point you to and say, this is how I learned MATLAB (although you may benefit from going through parts of the Onramp). I guess different people learn best through different methods, but for me the best way to learn anything is by trial-and-error: Try something and see what happens, if it doesn't work and you don't know why, read the documentation (if any) to find out. Keep trying things until: (1) you get something that works and you know why it works and under what conditions it will fail, or: (2) you realize that what you wanted to do is not feasible and you understand why, in which case the next step is to think of an alternative way to approach the problem. (Note that none of that is specific to learning MATLAB, but it applies just as it applies to any problem-solving activity - it's the scientific method after all.)

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by