matlab问题,急!已知柱坐标下的一组行矩阵数据,如何转换成直角坐标画成二维的灰度图?

2025-03-02 01:15:32
推荐回答(1个)
回答1:

参考代码:

x=-15:.1:15;
y=exp(-x.^2/5^2).*abs(cos(0.5*x));

n = floor(length(y)/sqrt(2));
I = zeros(n);
for i=1:n
    for j=1:n
        % 此处((i-n/2>=0)*2-1)未用符号函数sign是为了避免0
        r = sqrt((j-n/2)^2+(i-n/2)^2) * ((i-n/2>=0)*2-1);
        I(i,j) = interp1(linspace(-n/2,n/2,length(x)),y,r,'l','extrap');
    end
end
pcolor(x,x,I)
shading interp
colormap gray
axis off

前面两行的x和y是我自己构造的测试数据,题主请用自己的数据代替。

个人对实现的手段并不满意,只能是勉强使用。