MATLAB Answers

0

Loop for extracting a matrix

Meddour Aissam riad さんによって質問されました 2019 年 6 月 14 日
最新アクティビティ dpb
さんによって 編集されました 2019 年 6 月 14 日
Hi everyone,
I have an array/matrix of two column : acceleration (speed) , it contain 150 values. for each 10 valuies I want my program to calculates the average speed and acceleration of all 10 values ​​(from 0 to 10, then from 10 to 20 ...)
can you help me with a program

  1 件のコメント

dpb
2019 年 6 月 14 日
"...calculates the average speed and acceleration of all 10 values ​​(from 0 to 10, then from 10 to 20 ...)"
NB: each of those ranges is acutally 11 elements, not 10...

サインイン to comment.

2 件の回答

Guillaume
回答者: Guillaume
2019 年 6 月 14 日

Reshape your array into a 3D array with rows of 10 elements, columns of 150/10 = 15 elements, and 2 pages. Take the mean across the rows to get a 1x15x2 array which is the mean across ten consecutive values. Squeeze that back into a 15x2 array:
squeeze(mean(reshape(yourarray, 10, [], 2), 1)) %will error if the number of rows is not a multiple of 10

  0 件のコメント

サインイン to comment.


dpb
回答者: dpb
2019 年 6 月 14 日
編集済み: dpb
2019 年 6 月 14 日

nAvg=10;
mnAV=reshape(mean(reshape(av,nAvg,[])),[],2);
Same caveat w/ Guillaume; errors if not divisible by nAvg and the final reshape is based on the input array being specifically two columns. That limitation can be removed by using size(av,2) in place of the hardcoded '2', of course.

  0 件のコメント

サインイン to comment.



Translated by