【发布时间】:2012-11-17 15:48:04
【问题描述】:
我有一个向量 CD1 (120-by-1),我将 CD1 分成 6 个部分。例如,第一部分从CD1中的第1行到第20行提取,第二部分从CD1中的第21行到第40行提取,等等。对于每个部分,我需要计算绝对值的平均值second differences of the data.
for PartNo = 1:6
% extract data
Y(PartNo) = CD1(1 + 20*(PartNo-1):20*(PartNo),:);
% find the second difference
Z(PartNo) = Y(PartNo)(3:end) - Y(PartNo)(1:end-2);
% mean of absolute value
MEAN_ABS_2ND_DIFF_RESULT(PartNo) = mean(abs(Z));
end
但是,上面的命令会产生错误:
()-indexing must appear last in an index expression for Line:2
有什么想法可以改变代码让它做我想做的事吗?
【问题讨论】:
-
Y(PartNo)不是标量吗?而 rhs 是一个向量? -
那么写这样的东西是什么意思:
Y(1) = [1 2 3]?后来Y(1)(3:end)- 标量索引? -
等等...我担心我误解了你的问题。忘记我的回答,改用@dustincarr 的解决方案:)
-
只是一般性评论:空白是免费的!在计算机编辑器中没有纸张可以保存,并且更密集的代码不会使其更快,所以......打开它一点,它对眼睛更好:)
-
@RodyOldenhuis,您实际上比我回答的具体问题要好得多,因为这些问题专门针对错误消息。
标签: matlab loops for-loop indexing