For-loop show an element which has format number different with others in an array?

1 回表示 (過去 30 日間)
Khanh
Khanh 2014 年 10 月 17 日
コメント済み: Khanh 2014 年 10 月 20 日
Hi,
Could someone explain a strange thing happend in my simple code?
numwl='11';
chieuchimd='1';
dwl=str2double(chieuchimd)/(str2double(numwl)-1);
mwl=[0:dwl:str2double(chieuchimd)]*1000;
text3={};
for i=1:str2double(numwl)
text3=[text3;{sprintf('%d',i-1)} {sprintf('DN%d',i-1)} {sprintf('%d',mwl(i))}]
end
When for-loop at i=4, the 3rd colum of the cell had a number that its format different with others.
I also search but had no answers.
Thanks

採用された回答

Thorsten
Thorsten 2014 年 10 月 17 日
This is because mwl is not exactly 300 but 300 + 5.6843e-014.
Either use
mwl = round([0:dwl:str2double(chieuchimd)]*1000);
or
mwl = [0:dwl*1000:str2double(chieuchimd)*1000];
  1 件のコメント
Khanh
Khanh 2014 年 10 月 20 日
Thank you so much. My number array is exactly with interval is 100 (0:100:1000). But I also solved the problem by using your code. Thanks again :D.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEnvironment and Settings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by