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!