我有一個地形數據矩陣,它是一個大的。 我已經取代土地數據與南與海洋深度數據是積極的。(一個小樣本可波紋管可以看出)Matlab 2012a獲取邊界/邊界單元格
b= [
NaN NaN NaN NaN
4 NaN NaN NaN
19 14 NaN NaN
21 18 14 NaN
24 17 NaN NaN
40 13 NaN NaN
154 26 NaN NaN
232 44 NaN NaN
500 200 100 NaN
200 100 200 NaN
NaN NaN NaN NaN
];
我想沿海的細胞。它應該是:(1,1)(2,2)(3,3)(4,4)(5,3)(6,3)(7,3)(8,3)(9,4) (10,4)(11,3)(11,2)(11,1),這樣我們可以繪製一條單線輪廓作爲海岸線。
我看過這篇文章MATLAB, what is the best way to trace a boarder in a matrix that is changing each step? 但我無法獲得所需的海岸線使用它。 我也寫了一個腳本,但它返回一個勾號(2或3單元格)行,並有一些休息。
b(~isnan(b))=9; % sea cells will be 9
b(isnan(b))=98672; % land cells will be 98672
for i=1:255
for j=2:119
if b(i,j)==9
if ((b(i,j-1)==98672)||(b(i,j+1)==98672))
b(i,j-1)=333; % 333 will be the coastline
end
if ((b(i-1,j)==98672)||(b(i+1,j)==98672))
b(i,j-1)=333;
end
end
end
end
b(b==98672)=NaN;
b(b==9)=0.001;
pcolor(b);shading flat
休息發生在我們有海島或V形狀的地方。
你能幫我嗎? 請給我發電子郵件。 [email protected]
謝謝你,你的代碼在matlab 2012a中完美工作, – user1623313