Why do I get "Array indices must be positive integers or logical values"
조회 수: 1 (최근 30일)
이전 댓글 표시
Very new at matlab, i'm trying to fit linear function to a set of values. I keep getting "Array indices must be positive integers or logical values"
Please advise.
x = [62857 63320 63202 64754 64109 64298]'; % Population
y = [16366669 16864938 17087795 17224537 17301839 17095073]'; % Ridership
n = numel(y); % number of points being fitted
plot(x,y, '+')
A = [ones(6,1), x]; % design matrix
m = size(A,2); % parameters that we want fitted
b = A \ y;
f(x) = b(1) + b(2) *x;
xi = linspace(0,100);
fxi = f(xi);
plot(x, y, '+', xi, fxi)
댓글 수: 0
채택된 답변
Mauro Fusco
2019년 4월 25일
Arrays in Matlab are indexed starting from 1. Just replace xi = linspace(0,100); with
xi = linspace(1,100);
and it will not give error.
댓글 수: 2
Walter Roberson
2019년 4월 25일
This deals with the problem accidentally, and does not solve the real issue.
추가 답변 (1개)
Walter Roberson
2019년 4월 25일
편집: Walter Roberson
2019년 4월 25일
Please read https://www.mathworks.com/matlabcentral/answers/453477-error-array-indices-must-have-positive-or-logical-values#answer_368263 : you are confusing formula and expressions.
Also, your x range is about 60000, but the range over which you plot the projected line is 0 to 100.
plot(x, y, '+', x, polyval(flipud(b), x))
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Descriptive Statistics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!