【问题标题】:Break down an array [duplicate]分解数组[重复]
【发布时间】:2016-07-10 17:27:06
【问题描述】:

我正在尝试将大小为 1x117031(X 数组)的数组分解为大小为 Nx140(Y 数组)的数组,以便我可以绘制新数组并找出在循环测试期间图如何变化(N 到大约 1000)。

这是我的代码:

mydata=xlsread('average_4_5');

for i=100:size(mydata)
    X(i-99)=mydata(i,10);
end

for j=1:1000
    Y(j, 1:140)=X(1,((140*j)-140):140*j);
end

但我得到一个错误:

下标索引必须是正整数或逻辑数。

问题似乎来自X(1,((140*j)-140):140*j),我不知道为什么它不能将j 识别为整数值。

关于如何进行这种转换并绘制Y 的行以给我一个包含 1000 个条目的图表有什么想法吗?

【问题讨论】:

  • 我不确定我是否完全按照您的要求进行操作,但听起来您很可能会放弃所有循环并使用 reshape 函数。
  • @Dan 感谢您的评论。确切地说,我现在用重塑功能替换了我的,它可以工作。谢谢你提醒我

标签: arrays matlab matrix


【解决方案1】:

((140*j)-140)0,而 j1。问题不在于j 不是整数,而是您不能用0 索引矩阵。所以这里的关键字不是integer而是positive

但是,内置函数 reshape 应该可以为您解决这个问题。

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    相关资源
    最近更新 更多