Operands to the || and && operators must be convertible to logical scalar values. Error in logspace (line 23) if d2 == pi || d2 == single(pi)
3 ビュー (過去 30 日間)
古いコメントを表示
i have a vector of current and vector of voltage , i want to get logarithmic samples from both vectors instead of equally spaces. i try current=[...........] voltage=[...........] logspace(current,voltage) it will give me error.
1 件のコメント
Wayne King
2014 年 2 月 25 日
please tell us what voltage is. For example what does
>>whos voltage
return
採用された回答
Iain
2014 年 2 月 27 日
Assuming that logspace is something you didn't write and you can't change the if statement:
for i = 1:1666
logarithmic_space(i) = logspace(current(i),voltage(i))
end
0 件のコメント
その他の回答 (2 件)
Jos (10584)
2014 年 2 月 25 日
Apparantly, one of the expressions d2 == .. is not a logical scalar. My first guess would be that d2 is not a scalar, but an array with more than 1 element. Can you insert a
disp(size(d2))
just before the if statement?
Then, what would you like to do when there are more elements in d2. Compare them all to pi? ALL and ANY may help you out here:
help all
help any
In addition, comparing floating points using == is tricky. Take a look here:
d2 = 0.1+0.2+0.3
if d2==0.6
disp('d2 equals 0.6')
else
disp('d2 does NOT equal 0.6')
end
Not quite what you would expected. The solution to compare two floating point values, is to use a tolerance:
if abs(valueOne - valueTwo) < TOL
...
end
where you can define a tolerance.
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!