Keep getting error in polyfit

>> x = table2array(Test1_x);
>> y = table2array(Test1_y);
I keep getting this error in polyfit. Here is the code and output from Matlab during a simple test. x and y should be arrays of real numbers.
-----------------------------------------
>> poly_fit_coef = polyfit(x, y, 1);
Error using ones
CLASSNAME input must be a valid numeric class name.
Error in polyfit (line 59)
V(:,n+1) = ones(length(x),1,class(x));
--------------------------------------
What is wrong here?
Thanks in advance for any help!
Jennifer

 Accepted Answer

JFz
JFz on 26 Oct 2015
I just got it! My x and y arrays have strings in them. I converted the strings to numbers and it worked!
x_d = str2double(x); y_d = str2double(y); poly_fit_coef = polyfit(x_d, y_d, 1);

1 Comment

Thanks to Image and Star both for the help.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 26 Oct 2015
Edited: Image Analyst on 26 Oct 2015
What does this say?
whos x
class(x)
whos y
class(y)
which -all polyfit

4 Comments

Thank you so much for your quick reply. I typed the commands and here are results: whos x Name Size Bytes Class Attributes
x 1000x1 126012 cell
which -all polyfit
C:\Program Files\MATLAB\R2014b\toolbox\matlab\polyfun\polyfit.m
Like I thought, it wasn't a vector of numbers, but of strings.
Well, all it said was ‘cell’. That could be anything.
True. Since it came from table2array(), and we knew it wasn't a double, single, or an integer because it said "CLASSNAME input must be a valid numeric class name.", the most likely option that it would be is a cell array. Any cell array would generate this error - a cell array of strings, doubles, integers, etc.

Sign in to comment.

Tags

No tags entered yet.

Asked:

JFz
on 26 Oct 2015

Commented:

on 26 Oct 2015

Community Treasure Hunt

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

Start Hunting!