矢量的小波分解

时间:2015-05-13 14:04:16

标签: matlab plot haar-wavelet

如果我有一个大小为“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');

如何绘制近似和三个细节的串联?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望绘制3D数据。您可以使用scatter3plot3来实现您的目标。

使用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个立方体,但仍然在第三维中保持相同数量的维度,然后只绘制所有这些维度在同一时间。