Export every third row from excel.

조회 수: 2 (최근 30일)
Yang Hu
Yang Hu 2022년 4월 30일
댓글: Voss 2022년 5월 3일
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
dpb
dpb 2022년 4월 30일
So show us what you've done and where you had a problem...
>> ceil(289/3)
ans =
97
>>
Yang Hu
Yang Hu 2022년 4월 30일
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

댓글을 달려면 로그인하십시오.

채택된 답변

Voss
Voss 2022년 4월 30일
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
Voss
Voss 2022년 5월 1일
You're welcome!
Voss
Voss 2022년 5월 3일
@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.)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by