Use element as indices to continue calculation
1 次查看(过去 30 天)
显示 更早的评论
Hello, I split a set of data (3600 rows) to four segments and want to do separate calculation for each of them.
I have identified the start indices (t values) of each segment and combined them to a vector:
ind=[1,764,1335,1459,2151]
I want to calculate the mean values of x, y and z in each segment.
t=data(:,1);
P=data(:,2:4);
x=P(:,1); y=P(:,2);z=P(:,3);
I really appreciate your suggestions. Thank everyone in advance!
0 个评论
采纳的回答
CHIRANJIT DAS
2022-10-29
编辑:CHIRANJIT DAS
2022-11-1
Not sure what you are looking for. Hope the below code serves your requirement.
Data=csvread('data.csv'); ind=[1,764,1335,1459,2151];
t=Data(:,1);
P=Data(:,2:4); x=P(:,1); y=P(:,2);z=P(:,3);
xsec=[]; ysec=[]; zsec=[];
for i=1:length(ind)-1
disp(i)
xs1=nanmean(x(ind(i):ind(i+1))); xsec=[xsec;xs1];
ys1=nanmean(y(ind(i):ind(i+1))); ysec=[ysec;ys1];
zs1=nanmean(z(ind(i):ind(i+1))); zsec=[zsec;zs1];
end
final=[xsec,ysec,zsec]; % 1st,2nd,3rd columns are means of individual ind sections of x,y,z
Cheers.
5 个评论
Torsten
2022-11-1
Elements in the ind-vector are counted twice in your code.
Should be
xmean(i) = mean(x(ind(i):(ind(i+1)-1)));
ymean(i) = mean(y(ind(i):(ind(i+1)-1)));
zmean(i) = mean(z(ind(i):(ind(i+1)-1)));
instead of
xs1=nanmean(x(ind(i):ind(i+1))); xsec=[xsec;xs1];
ys1=nanmean(y(ind(i):ind(i+1))); ysec=[ysec;ys1];
zs1=nanmean(z(ind(i):ind(i+1))); zsec=[zsec;zs1];
更多回答(1 个)
Torsten
2022-10-29
data = readmatrix("https://de.mathworks.com/matlabcentral/answers/uploaded_files/1172778/data.csv");
ind=[1,764,1335,1459,2151];
t=data(:,1);
P=data(:,2:4);
x=P(:,1); y=P(:,2);z=P(:,3);
ind = [ind,numel(t)+1];
for i = 1:numel(ind)-1
xmean(i) = mean(x(ind(i):(ind(i+1)-1)));
ymean(i) = mean(y(ind(i):(ind(i+1)-1)));
zmean(i) = mean(z(ind(i):(ind(i+1)-1)));
end
xmean
ymean
zmean
3 个评论
Torsten
2022-11-1
I thought you might also be interested in the mean for the elements from 2152 to the end ...
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Direct Search 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!