次の例を検討してください。
Bathymetry = [0,4134066;
3,3817906;
6,3343666;
9,2978725;
12,2742092;
14,2584337;
16,2415355;
18,2228054;
20,2040753;
23,1761373;
26,1514085];
Depth = [0;1;2;3;5;8;10;11.6;15];
newDepth = min(Bathymetry(:,1)):0.1:max(Bathymetry(:,1));
これから、「newDepth」のどの列が「Depth」に対応するかを見つけたいと思います。例えば:
dd = find(newDepth==Depth(1))
dd =
1
Depth == 0 が newDepth の最初の列にあることを示しています。これを「深さ」のすべてのエントリに適用すると
for i = 1:length(Depth);
dd(i) = find(newDepth == Depth(i));
end
エラーが表示されます:
Improper assignment with rectangular empty matrix.
最初は理由がわかりませんでしたが、newDepth の配列、特に newDepth == 11.6 の列 117 を見ると、値が 11.6 ではなく 11.600000000000001 に等しく、Depth(8) とは異なることに気付きました。どうすればこれを修正できますか? また、なぜ MATLAB は値を 11.6 として書き込まないのでしょうか? .000000000000001を含めるように指定した場所はどこにもありません。