如何在MATLAB中绘制三阶张量

时间:2018-05-28 21:21:05

标签: matlab plot 3d tensor visualize

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

张量a的大小(100,100,100)和所有元素在对角线上占主导地位。

如何在a MATLAB中将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)) 看成是白色,一个是黑色。我在MS办公室里画,这就是我想要的Expected image

对于矩阵情况,我们可以看到如下

npm install angular4-fusioncharts --save

图像是 2D matrix visulize

如何为张量做类似的方式?

如何用噪音来显示张量?喜欢矩阵here

上的噪音

2 个答案:

答案 0 :(得分:4)

您可以使用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);

enter image description here

答案 1 :(得分:0)

我用scatter3尝试了这个:

nonzeros = find(a);
[px,py,pz] = ind2sub(size(a),nonzeros);
scatter3(px,py,pz,'k','.');