【问题标题】:reshape in MATLAB在 MATLAB 中重塑
【发布时间】:2013-08-09 06:12:49
【问题描述】:

如果我们来到MATLAB中的下面这行代码:

reshape(dataSet{i},1, 200*200);
  • 这里,dataset{j} 似乎是 单元格数组 中的一个元素。那正确吗?既然我们使用的是reshape,我们可以说那个元素是array吗?
  • 当我们使用reshape 时,我们定义了尺寸(即m,n)。在上面的代码中,是m=1n=200*200?但是,为什么n 不写成400 之类的呢?用我们看到的语法写它有什么原因吗?

谢谢。

【问题讨论】:

  • 你的意思是 200*200 = 40000 而不是 400。

标签: matlab dimensions reshape


【解决方案1】:

dataSet 是一个元胞数组,但您不能假设 dataset{j} 是一个数组。 Reshape 也适用于字符串和元胞数组:

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

ans =

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

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

ans =

ac
bd

写 200*200 没有明显的理由,除非 200 对于理解正在计算的内容很重要。

【讨论】:

  • 大概dataset{j} 是任何数据类型的方形数组。通过将200*200 替换为[] 可以实现等效的扁平化。也许作者出于任何莫莉怀疑的原因想要强调尺寸;或者他们可能不知道/对[] 功能漠不关心,也懒得计算和硬编码产品。
猜你喜欢
  • 2014-06-01
  • 2016-01-11
  • 1970-01-01
  • 2017-12-25
  • 2016-04-22
  • 2012-08-07
  • 1970-01-01
相关资源
最近更新 更多