'Value' must be double scalar within the range of 'Limits'

조회 수: 3 (최근 30일)
Lola
Lola 2022년 6월 16일
댓글: Adam Danz 2022년 6월 16일
Hi. I am creating a gui on appdesigner. I am reading numeric data from a csv file and storing this data in an array. I want to calculate the standard deviation of the values store in the array and display it on the numeric edit field. The error I get is 'Value' must be a double scalar within the range of 'Limits'. But my Limit of the editfield is -Inf,Inf. The csv file is attached and the code is provided below. Please assist.
data=readtable('tests1.csv','NumHeaderLines',9);
col_vec=data{:,2}
app.stdEditField.Value=std(col_vec);
I tried editing the code to :
app.stdEditField.Value=std(single(col_vec))
Or
app.stdEditField.Value=std(double(col_vec))
But the error still pops up.
  댓글 수: 4
Adam Danz
Adam Danz 2022년 6월 16일
Please show us the results of data{:,2}, a few rows will be sufficient.
It may be helpful to see the results of std(col_vec) as well.
If col_vec is not a vector, then the result of std will not be a scalar. Table columns can contain matrices, for example.
Another possibility is that std is returning a NaN or Inf which may not pass the UI component validation.
Lola
Lola 2022년 6월 16일
Hi. I have attached the csv file that has the results in it. It is column 2. I'm reading the values after 9 rows

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

채택된 답변

Adam Danz
Adam Danz 2022년 6월 16일
편집: Adam Danz 2022년 6월 16일
Your data contains a NaN value.
data=readtable('tests1.csv','NumHeaderLines',9);
col_vec=data{:,2};
n = sum(isnan(col_vec));
fprintf('There are %d NaN values in col_vec\n', n)
There are 1 NaN values in col_vec
std(col_vec)
ans = NaN
Where is the NaN value?
nanLoc = find(isnan(col_vec));
fprintf('NaN in row %d', nanLoc)
NaN in row 789
When there is at least 1 NaN in a vector, std will return NaN.
Options:
  1. Figure out why there are NaNs and replace them (manually, smoothing, interpolation, etc)
  2. Ignore the NaNs: S = std(___,nanflag)
sd = std(col_vec,'omitnan')
sd = 37.5436
  댓글 수: 2
Lola
Lola 2022년 6월 16일
편집: Lola 2022년 6월 16일
Thank you so much ! I have tried the last line of code a few minutes ago and it did work but I didn't understand where the NaN value was and how to find it. Thank you for your help. It is much appreciated

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

추가 답변 (0개)

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by