2013-08-07 68 views
-3

如果我们MATLAB来到下面的代码行:重塑MATLAB

reshape(dataSet{i},1, 200*200); 
  • 这里,dataset{j}似乎是在单元阵列的元素。是对的吗?由于我们使用的是reshape,我们可以说那个元素是array
  • 当我们使用reshape时,我们定义了维数(即; m,n)。在上面的代码中,是m=1n=200*200?但是,为什么不把n写为400?有什么理由用我们看到的语法编写它?

谢谢。

+0

你的意思是200 * 200 = 40000而不是400. –

回答

2

dataSet是一个单元格数组,但不能假定dataset{j}是一个数组。重塑对字符串和电池阵列也能发挥作用:

reshape({1,2,3,4},2,2) 

ans = 

    [1] [3] 
    [2] [4] 

>> reshape('abcd',2,2) 

ans = 

ac 
bd 

这里没有明显的理由写200 * 200,除非200是理解正在计算什么重要。

+0

推测'dataset {j}'是任何数据类型的正方形数组。通过用'[]'替换'200 * 200'可以实现等同的平坦化。也许作家想要强调Molly怀疑的任何原因的维度;或者他们对'[]'功能没有意识到/漠不关心,并且无法计算和硬编码产品。 – benxyzzy