【问题标题】:Rotate Rows to Columns MATLAB将行旋转为列 MATLAB
【发布时间】:2015-03-16 16:24:09
【问题描述】:

我一直在研究这个问题,但没有找到解决方案。我有这样的数据:x = [ 1 2 3; 4 5 6; 7 8 9;],我需要它看起来像这样来创建索引:xx = [ 1 2 3 4 5 6 7 8 9 ]。所以,x3 X 3,我需要 xx1 X 9reshape 的基本形式并不能做到这一点,但也许 reshape 函数的变体可以工作?

【问题讨论】:

  • 你看过permute吗?您可以将它与reshape 一起使用以获得您想要的结果。
  • transpose 然后绕着脖子稍微移动一下,它可能会弹出,我的意思是解决方案可能会弹出。
  • 对于您的示例,y = y'; xx = y(:); 也提供您想要的输出。

标签: matlab rows reshape


【解决方案1】:

这能满足你的需要吗?

>> x = [ 1 2 3; 4 5 6; 7 8 9;]
x =
     1     2     3
     4     5     6
     7     8     9
>> reshape(x',1,9)
ans =
     1     2     3     4     5     6     7     8     9 

【讨论】:

  • 完美 - 谢谢!我应该看到那个解决方案!
  • @user2100039 您能否为您接受的答案投票并接受它,以最大限度地提高回答者的努力。
【解决方案2】:

这并没有像reshape 那样为您提供更多的灵活性,但我可以完成这项工作。

x = [ 1 2 3; 4 5 6; 7 8 9;]
x.'(:).'
ans =

   1   2   3   4   5   6   7   8   9

【讨论】:

  • 仅供参考,如果您是 Octave,第二个语句可以像那样链接。如果您使用 MATLAB,则必须将第二行代码显式拆分为三个语句:x = x.'; x = x(:); x = x.';... yuck.
  • @rayryeng 非常感谢... :-) 感谢您指出 Octave 位。我没想到。
  • Ahhh FWIW 我喜欢将这样的东西链接在一起。我希望你能在 MATLAB 中做到这一点!顺便说一句,不客气。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
相关资源
最近更新 更多