如果我有一个大小为“yourlabelname.layer.cornerRadius = 10.0f;
[yourlabelname setClipsToBounds:YES];
”的高光谱数据立方体,其中m x n x p
是行大小,m
表示列大小,而n
是总数乐队。
让我们用 A 来表示高光谱数据立方体。在这种情况下, A 的每个像素都对应一个大小为p
的向量。
好的是从 A 绘制一个像素,我们可以这样做:
p x 1
我有两个问题:
1)我知道如何像上面一样分别绘制每个像素,但是我如何在此期间创建所有像素的图?例如,如果我们有2D图像,我们可以简单地写图(图像)。但是对于数据立方体,我们怎么做呢?
2)如果我将3级的1D小波haar应用于上面的特定像素:
specific_pixel = squeeze(A(x,y,:)); % Extracting a pixel located in the position x and y of A
plot(specific_pixel), ylabel('The specific pixel');
如何绘制近似和三个细节的串联?
非常感谢任何帮助。
答案 0 :(得分:1)
如果我理解正确,您希望绘制3D数据。您可以使用scatter3
或plot3
来实现您的目标。
使用plot3
,执行:
plot(A(:,:,1), A(:,:,2), A(:,:,3), 'b.', 'MarkerSize', 10);
scatter3
执行:
scatter3(A(:,:,1), A(:,:,2), A(:,:,3), 10, 'b');
以上代码绘制了尺寸为10且颜色为蓝色的3D空间中的每个点。
关于第二个问题,假设输出也是3D,您可以将水平多维数据集与cat
连接起来,然后重复上面的代码。
这样的事情:
out = cat(2, approxi, details1, details2, details3);
plot(out(:,:,1), out(:,:,2), out(:,:,3), 'b.', 'MarkerSize', 10);
%// or
%// scatter3(out(:,:,1), out(:,:,2), out(:,:,3), 10, 'b');
2
中的cat
参数水平连接,因此您需要水平拼接4个立方体,但仍然在第三维中保持相同数量的维度,然后只绘制所有这些维度在同一时间。