【发布时间】:2013-11-03 14:59:48
【问题描述】:
想象一个 2 x 2 x 2 三向数据立方体:
data = [1 2; 3 4];
data(:,:,2) = [5 6; 7 8]
我希望从这个立方体(即 2x2 矩阵)生成一个行列切片,其中切片的每个元素都是通过随机采样其 3 模光纤(即第 n 模光纤是沿nth mode/dimension/way. 这个立方体中有 4 根 3 模光纤,其中一根是 f1 = [1 5],另一根是 f2 = [2 6],以此类推)。例如,一个切片可能变成:
slice = [5 2; 3 4]
不同的采样可能会导致切片:
slice = [1 2; 7 8]
有没有快速的方法来做到这一点?
我尝试使用 slice = datasample(data,1,3) 但此函数从多维数据集中随机选择一个行列切片(即 slice = [1 2; 3 4] 或 [5 6; 7 8] )。
【问题讨论】:
-
不清楚,什么是三模光纤,第一个切片的采样与第二个切片的采样情况如何?请详细说明。
-
第一个切片的采样与第二个切片的采样是一致的,因为在每个切片中,元素是通过对该元素所在的“纤维”进行采样而随机生成的(均匀采样)。对于例如,要生成元素 (1,1),您将从向量 [1 5] 中采样一个数字。谢谢
-
我不明白第一个怎么可能是切片。对我来说,[5,2;7,4] 是对角线切片。
-
我想生成一个 2x2 矩阵,因为 2x2 是通过立方体的一行/列切片。 2x2 矩阵中有 4 个元素。让我们取第一个元素 (1,1)。它的值应该来自向量的均匀随机抽样[1 5]。让我们转到下一个元素 (1,2)。它的值应该来自向量[2 6]。下一个元素是 (2,1),它的值应该来自向量 [3 7]。最后一个元素 (2,2) 需要一个从向量 [4 8] 中随机采样的值。我可以用循环来完成所有这些,但我想看看是否有更快/更简单的方法。再次感谢。
-
我不确定您是否想要
Nth 模式的通用解决方案,但我认为我的答案提供了这一点,使用randi沿维度N进行统一采样;
标签: matlab random-sample