She*_*hew 4 matlab vector contour
我试图在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)
Run Code Online (Sandbox Code Playgroud)
z = abs(xm)+abs(ym);
Run Code Online (Sandbox Code Playgroud)
你可以更有效地使用它bsxfun来避免生成矩阵xm,ym:
x = linspace(-1,1,10);
y = linspace(-1,1,10);
z = bsxfun(@plus, abs(x), abs(y).');
surfc(x,y,z)
Run Code Online (Sandbox Code Playgroud)
这两种方法中的任何一种都会产生:

为了获得更好的图像,您应该增加采样,并可能删除表面边缘:
x = linspace(-1,1,100);
y = linspace(-1,1,100);
z = bsxfun(@plus, abs(x), abs(y).');
surfc(x,y,z,'edgecolor','none')
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |