The mean function isn't working and i don't know why

5 ビュー (過去 30 日間)
Michael
Michael 2024 年 10 月 7 日
コメント済み: Michael 2024 年 10 月 7 日
I am trying to take the mean of a data set:
Data_IV_KE = Data(1:100,2);
xbar_IV_KE = mean(Data_IV_KE);
But I keep getting the error message:
Error using sum
Invalid data type. First argument must be numeric or logical.
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
Error in Part_B_Exam (line 47)
xbar_IV_KE = mean(Data_IV_KE); % 4m/s
  4 件のコメント
Walter Roberson
Walter Roberson 2024 年 10 月 7 日
How did you read the csv file in?
I suspect you used readtable() into variable named Data so Data is a table() object, in which case Data(1:100,2) would be a table object not a numeric array.
Michael
Michael 2024 年 10 月 7 日
I did use readtable and you were right about that being the problem. Thank you!

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

回答 (1 件)

Torsten
Torsten 2024 年 10 月 7 日
編集済み: Torsten 2024 年 10 月 7 日
Check whether the data type of Data_IV_KE is "double".
To this end, MATLAB should return "double" when you type
class(Data_IV_KE)
as in
class(5)
ans = 'double'
I suspect it's not.
  2 件のコメント
Walter Roberson
Walter Roberson 2024 年 10 月 7 日
I suspect that Data is a table() object, so you would need
Data_IV_KE = Data{1:100,2};
Steven Lord
Steven Lord 2024 年 10 月 7 日
Walter, mean on a table array works as of release R2023a, so if your suspicion that Data is a table array is correct the poster must be using a release of MATLAB that's a few years old.
A = gallery('moler', 4) % magic(4) would be boring for this calculation
A = 4×4
1 -1 -1 -1 -1 2 0 0 -1 0 3 1 -1 0 1 4
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
mean(A)
ans = 1×4
-0.5000 0.2500 0.7500 1.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
mean(array2table(A))
ans = 1x4 table
A1 A2 A3 A4 ____ ____ ____ __ -0.5 0.25 0.75 1
But I agree with you and Torsten, that Data is likely not a double array. Maybe a cell array?
C = num2cell(A)
C = 4x4 cell array
{[ 1]} {[-1]} {[-1]} {[-1]} {[-1]} {[ 2]} {[ 0]} {[ 0]} {[-1]} {[ 0]} {[ 3]} {[ 1]} {[-1]} {[ 0]} {[ 1]} {[ 4]}
mean(C)
Error using sum
Invalid data type. First argument must be numeric or logical.

Error in mean (line 122)
y = sum(x, dim, flag) ./ mysize(x,dim);

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

カテゴリ

Help Center および File ExchangeData Type Identification についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by