首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MATLAB中绘制三阶张量

如何在MATLAB中绘制三阶张量
EN

Stack Overflow用户
提问于 2018-05-29 05:21:05
回答 2查看 1.1K关注 0票数 3
a = zeros(100,100,100);
distance = [1,21,41,61,81];
for d = 1:5
    for i=distance(d): distance(d)+19
        for j=distance(d): distance(d)+19
            for k=distance(d): distance(d)+19
                a(i,j,k) = 1;
            end
        end
    end
end

大小为(100,100,100)的张量a和所有元素控制对角线。

如何在MATLAB中可视化它,0是白色,1是黑色。我在MS office中绘图,这就是我想要的Expected image

对于矩阵情况,我们可以如下所示

X = zeros(100,100);
distance = [1,21,41,61,81];
for d = 1:5
    for i=distance(d): distance(d)+19
        for j=distance(d): distance(d)+19
            X(i,j) = 1;
        end
    end
end


imagesc(a)
im = imagesc(1-X)
colormap(gray(256))

图像是2D matrix visulize

如何对张量进行类似的处理?

如何在有噪声的情况下显示张量?就像矩阵上的噪声

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-29 06:11:40

您可以使用isosurfaceisocaps非常接近MS Office中生成的绘图。AFAIK MATLAB没有任何生成倾斜投影的内置方法,但如果你对正交投影没有意见,下面的方法可能对你有用。

color = [0.2,0.2,0.2];
p1 = patch(isosurface(a), 'FaceColor', color, 'EdgeColor', 'none');
p2 = patch(isocaps(a), 'FaceColor', color, 'EdgeColor', 'none');

camlight left
camlight
lighting gouraud
isonormals(a, p1);

grid on;
view(3);
camorbit(-40,0);

票数 4
EN

Stack Overflow用户

发布于 2018-05-29 06:27:01

我用scatter3试了一下:

nonzeros = find(a);
[px,py,pz] = ind2sub(size(a),nonzeros);
scatter3(px,py,pz,'k','.');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50573525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档