正如标题所说,我想将一条线(或任何等式)转换为2D矩阵。
例如:如果我有一个线方程 y = x ,那么我希望它像:
Observable
.fromCallable(new Callable<List<Post>>() {
@Override
public List<Post> call() throws Exception {
// TODO: get posts
return posts;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(posts -> {
// TODO: update UI
}, throwable -> {
// TODO
})
,行和列的长度可以变化。
是否有实现该功能的方法或方法?
答案 0 :(得分:2)
使用meshgrid
获取x-y网格:
% set resolution parameters
xmin = 1;
xmax = 100;
dx = 0.1;
ymin = 1;
ymax = 100;
dy = 0.1;
% set x-y grid
[xg, yg] = meshgrid(xmin:dx:xmax, ymin:dy:ymax);
% define your function
f = @(x) (x - 30).^2;
% apply it on the x grid and get close y values
D = abs(f(xg) - yg);
bw = D <= 1;
figure;
imshow(bw);
% flip y axis
set(gca,'YDir','normal')
你得到:
然后你可以进一步扩展/侵蚀/骨化输出
答案 1 :(得分:2)
给定x和y坐标,如何用这些坐标填充矩阵?如上所述,只需在for循环中执行,或使用“sub2ind”函数。
% x,y coordinates
x=0:.01:30;
y=10*sin(2*pi*.1*x);
% add offset so that (x,y)-coordinates are always positive
x=x+abs(min(x))+1;
y=y+abs(min(y))+1;
figure,plot(x,y,'.');axis tight
x=ceil(x); y=ceil(y);
im=zeros(max(y),max(x));
ind=sub2ind(size(im),y,x);
im(ind)=1;
figure,imagesc(im),axis image, axis xy;colormap gray;axis tight
xlabel('x'); ylabel('y')
答案 2 :(得分:1)
为什么不靠自己做呢?你遍历矩阵的所有x坐标,你(可能是缩放的)用作函数的x并获得y out,你(可能是缩放的)可以舍入然后用作矩阵的y坐标来设置1 。