【发布时间】: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