ERROR with type off data

hi, when i run my script it show this error
Error using ==> rdivide
Integers can only be combined with integers of the same class, or scalar doubles.
in this line
for iter=1:itmax
W(iter)=wmax-((wmax-wmin)/itmax)*iter;
wmax and wmin are saved as 'single' and itmax as 'uint8'.W is defined as '<1x50 single>' in workspace and and iter is just a value in workspace

回答 (3 件)

Fangjun Jiang
Fangjun Jiang 2011 年 10 月 10 日

0 投票

try
W(iter)=wmax-((wmax-wmin)/single(itmax))*iter

1 件のコメント

Nu9
Nu9 2011 年 10 月 10 日
now it shows this error
??? Error using ==> times
Integers can only be combined with integers of the same class, or scalar doubles.

サインインしてコメントする。

Andrei Bobrov
Andrei Bobrov 2011 年 10 月 10 日

0 投票

k = single(itmax);
for iter=1:k
W(iter)=wmax-((wmax-wmin)/k)*iter;
...
end
or
W(iter)=wmax-((wmax-wmin)/single(itmax))*single(iter);

1 件のコメント

Nu9
Nu9 2011 年 10 月 10 日
thanks for the help

サインインしてコメントする。

Laura Proctor
Laura Proctor 2011 年 10 月 10 日

0 投票

Because you are creating the variable iter from the variable itmax, it will also be uint8, so you will need to cast it as a single as well:
W(iter) = wmax -( (wmax-wmin)/single(itmax) ) * single(iter);

1 件のコメント

Nu9
Nu9 2011 年 10 月 10 日
thanks it worked just as the tip from andrei bobrov

サインインしてコメントする。

カテゴリ

質問済み:

Nu9
2011 年 10 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by