看看这个是什么问题
我编辑了一个这样的小程序。要得到矩阵从最后一列开始加前一列的值,得到一个新的和的矩阵。新的第一行的第一个元素是后几个元素的和,第二个元素是它后面的元素和。程序如下:f=ones(10);
a(:,10)=f(:,10);
for i=10:-1:2
a(:,i-1)=f(:,i-1)+f(:,i);
f(:,i)=a(:,i-1);
end
a
j结果这个计算为ans=1
请问这个程序的错误在哪儿?
我开始学习 matlab,大家多指教!! 原帖由 wei124 于 2006-11-18 19:34 发表
我编辑了一个这样的小程序。要得到矩阵从最后一列开始加前一列的值,得到一个新的和的矩阵。新的第一行的第一个元素是后几个元素的和,第二个元素是它后面的元素和。程序如下:
f=ones(10);
a(:,10)=f(:,10);
...
这个功能可以直接使用matlab的cumsum函数实现 是想实现如下功能吗?
当f=ones(10)时,希望输出如下矩阵:
%%%%%%%%%%%%%%%%%%%%%%
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 4 3 2 1
%%%%%%%%%%%%%%%%%%%%%%
还是想编一个程序实现上述功能? 如果仅仅是类似于上述功能的实现,感觉编程就不用了:
A=ones(10,1)*
回复
我猜他的意思应该是:任意给定一个矩阵,要求可以实现累积和.这可以用cumsum加一个左右翻转来实现. xjzuo的结果是我想要的
你是怎么实现的 补充一下,我上面说的仅仅是一个例子。真正实现的是一个NxNd的 一个矩阵的求和方式,但是求和的形式是和xjzuo
演示的结果是一样的。请给予回复
谢谢各位的热心帮助 原帖由 wei124 于 2006-11-19 14:47 发表
补充一下,我上面说的仅仅是一个例子。真正实现的是一个NxNd的 一个矩阵的求和方式,但是求和的形式是和xjzuo
演示的结果是一样的。请给予回复
谢谢各位的热心帮助
不是已经提示了用cumsum函数吗 问题是,我用了cumsum()函数以后,得到的是
%%%%%%%%%%%%%%%%%%%%%%%
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
而我想要的结果是
43 2 1
43 2 1
43 2 1
43 2 1
还有就是我看这个函数了其中的dim维是什么意思? 原帖由 wei124 于 2006-11-19 15:04 发表
问题是,我用了cumsum()函数以后,得到的是
%%%%%%%%%%%%%%%%%%%%%%%
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
而我想要的结果是
43 2 1
43 2 1
43 2 1 ...
dim维是什么意思 —— 标识“求和”操作按哪一维进行
用 fliplr 函数就可以实现你的目的
>> b
b =
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
>> fliplr(b)
ans =
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
[ 本帖最后由 eight 于 2006-11-19 15:19 编辑 ]
页:
[1]