フィルターのクリア

Average every 3 Rows in Single Column in Table

6 ビュー (過去 30 日間)
Spencer Ferris
Spencer Ferris 2021 年 2 月 21 日
コメント済み: KALYAN ACHARJYA 2021 年 2 月 22 日
I have a column in a table where I want to make a new column of data based on the average of every 3 values in that column. Tried some other solutions here but none seemed to work for me.

採用された回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2021 年 2 月 21 日
編集済み: KALYAN ACHARJYA 2021 年 2 月 21 日
Lets consider one Table Example
LastName = {'A';'B';'C';'D';'E';'F'};
Age = [38;43;38;40;49;50];
T = table(LastName,Age);
Table
T =
6×2 table
LastName Age
_______ ___
{'A'} 38
{'B'} 43
{'C'} 38
{'D'} 40
{'E'} 49
{'F'} 50
Access the particular column, let's say age data
age_col=T.Age
Result:
>> age_col=T.Age
age_col =
38
43
38
40
49
50
Now Average the 3 consecutive rows of the column vector. Easiest way reshape the data then mean
data1=reshape(age_col,[3,2])
%........................^ you can generelize this sizes
Next find the mean and transpose
av_result=mean(data1)'
Result:
av_result =
39.6667
46.3333
  2 件のコメント
Spencer Ferris
Spencer Ferris 2021 年 2 月 21 日
編集済み: Spencer Ferris 2021 年 2 月 21 日
Thanks so much! So this worked perfectly, only thing is my output for one of them was 2.307 when it should have been 2,307. Looks like it divided everything by 1000 for some reason?
Here's exactly what I did. It's giving me the correct values just everything is divided by 1000. I tried multiplying xcoord_divided by 1000 but that didn't seem to do anything.
EDIT: Just realized that it was just how matlab was displaying the values, all set and thank you!
xcoord = practice.x
xcoord_reshaped = reshape(xcoord,[3,length(xcoord)/3])
xcoord_divided= mean(xcoord_reshaped)'
KALYAN ACHARJYA
KALYAN ACHARJYA 2021 年 2 月 22 日

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by