【问题标题】:Add a vector to every column of matrix向矩阵的每一列添加一个向量
【发布时间】:2015-07-22 19:01:20
【问题描述】:

我有一个 Matlab 矩阵:data= zeros (22,5,82)

在处理过程中,列1:4 填充有数据,每个级别的dim (2) dim(3)。

在第 5 列中,我想要第三维中每一列的值 [-2,-1,1:20]。为了说明这一点,数据来自实验的试验:dim(1) 是样本,dim(2) 是从每个样本收集的不同数据,dim(3) 是试验。

我尝试定义一个变量:sample=[-1,-2,1:20]',然后使用代码data(:,5,:)=sample,但这会引发错误:

Assignment 的非单件 rhs 维度比非单件少 下标

谁能告诉我怎么做?

【问题讨论】:

  • 使用repmat 使尺寸匹配。 Matlab 不会自动为你广播这个,你需要明确地这样做:data(:,5,:)=repmat(sample,1,1,82)
  • 哎呀 - 样本 = [-1 -2 1:20]'
  • 谢谢 Dan - 我现在就试试看 :)
  • 没问题,顺便说一句,如果您犯了这样的错误,您应该只编辑您的问题而不是将其发布在 cmets 中。这次我已经为你编辑好了。
  • 感谢 Dan - 进行了一项修改,因为我必须将三个维度作为 data(:,5,:)=repmat(sample,[1 1 82]) 或它告诉我输入参数太多。非常感谢!

标签: matlab


【解决方案1】:

使用repmat 使尺寸匹配。 Matlab 不会自动为你广播这个,你需要明确地这样做:

data(:,5,:)=repmat(sample,[1,1,82])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2014-07-06
    • 2016-02-19
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多