簡體   English   中英

在matlab中的L1范數等值線圖

[英]L1 norm contour plot in matlab

我試圖在matlab中繪制L1范數的水平集。 但它根本不起作用,我被卡住了。 有幫助嗎?

x = linspace(-1,1,10);
y = linspace(-1,1,10);
[xm,ym] = meshgrid(x,y);
z = sum(abs(xm-ym));
surfc(x,y,z)

根據L1規范定義,將第四行改為:

z = abs(xm)+abs(ym);

您可以使用bsxfun更有效地執行此bsxfun以避免生成矩陣xmym

x = linspace(-1,1,10);
y = linspace(-1,1,10);
z = bsxfun(@plus, abs(x), abs(y).');
surfc(x,y,z)

這兩種方法中的任何一種都會產生:

在此輸入圖像描述

為了獲得更好的圖像,您應該增加采樣,並可能刪除表面邊緣:

x = linspace(-1,1,100);
y = linspace(-1,1,100);
z = bsxfun(@plus, abs(x), abs(y).');
surfc(x,y,z,'edgecolor','none')

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM