Variable "H" might be set by a nonscalar operator
이전 댓글 표시
Hello,
My goal for my code is to simulate a tire model and H equation gets a error code saying "Variable H might be set by a nonscalar operator". I think it has to deal with my variable s being defined as a vector but I dont know how to change it into a scalar. Help please :).

댓글 수: 1
Jan
2022년 2월 13일
Please post code as text, not as screenshot. Then it is easier to suggest modifications using copy&paste.
답변 (1개)
Jan
2022년 2월 13일
If H is an array, what is the meaning of:
if H < 0.5
? The IF command requires a scalar condition. Therefore Matlab inserts an all() automatically. To be exact:
if all(H(:) < 0.5) && ~isempty(H)
It is not meaningful "to change H to a scalar" also.
You are running a loop over the elements of s. Maybe you do not want to access the vector s, but the elements s(i).
댓글 수: 8
Marshall Botta
2022년 2월 13일
Jan
2022년 2월 14일
As said already: I could easily post the modified code, if you provide the code as text and not as screenshot. I hestitate to type your code again, if you have it as text available already.
Marshall Botta
2022년 2월 14일
편집: Walter Roberson
2022년 2월 14일
Marshall Botta
2022년 2월 14일
You can simplify:
H = zeros(1,length(s)) ;
for i=1:length(s)
H(i) = (sqrt(((Cx.*s(i)).^2) + (Cy.*tan(alp(i))).^2))/(u*Fz.*(1+s(i)));
end
to
H = sqrt(((Cx * s) .^ 2) + (Cy * tan(alp)) .^ 2) ./ (u * Fz * (1 + s));
and the loop to:
for i = 1:length(H)
if H(i) < 0.5
Fx(i) = Cx * s(i) / (1 + s(i));
Fy(i) = Cy * tan(alp(i)) / (1 + s(i));
else
Fx(i) = Cx * (s(i) / (1 + s(i))) * ...
(1 / H(i) - 1 / (4 * H(i) ^ 2));
Fy(i) = Cy * ((tan(alp(i))) / (1 + s(i))) * ...
(1 / H(i) - 1 / (4 * H(i) ^ 2));
end
end
Now it looks more clear. Are you sure with the parentheses for Fx and Fy?
Marshall Botta
2022년 2월 14일
Marshall Botta
2022년 2월 14일
Square brackets are the operator for concatenating arrays. Changing parentheses to brackets is not useful.
My suggested code produces the same output as the original code.
"(s,Fx) isnt what im looking for" - I do not know, what you are looking for. All I know is the code you have posted.
카테고리
도움말 센터 및 File Exchange에서 Descriptive Statistics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!