作者ureikaze (etiquette)
看板MATLAB
标题Re: [问题] 找最後一个不为零的值并且加上1该怎麽写?
时间Tue Jan 23 09:54:19 2007
※ 引述《anarchy1121 (安那其)》之铭言:
: 各位高手
: 我想请请教一各问题
: 我有一个矩阵A
: A=[0 1 2 3 0 0 0 0
: 1 2 3 4 5 0 0 0
: 0 1 0 3 4 5 0 0]
: 我要如何找到最後一个不为零的值并且加上1
: 如: A(1,4)+1
: A(2,5)+1
: A(3,6)+1
: 像这样的我自己写了一个,如下:
: for t=20:-1:5;
: for i=1:1000;
: if cppi0(i,t)>0;
: cppi0(i,t)=cppi0(i,t)+100;
: end
: end
: end
: 不过这样跑出来会让全部不为零的值都加上100
: 我应该怎麽改呢??
: 如果有人知道可以告诉我吗?谢谢!!
b=a';
idx=max((meshgrid(1:size(a,2),1:size(a,1)).*(a~=0))') ...
+[0:size(a,2):size(a,1)*size(a,2)-1];
b(idx)'+1
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.98.59
1F:推 asingular:推 ~再大的矩阵都可以秒杀 01/23 12:16
2F:推 zxvc:...其实meshgrid内部有回圈XD 01/23 12:54
3F:推 sunev:呃...楼上...我把meshgrid打开来看没有看到回圈啊... 01/23 15:05
4F:推 zxvc:抱歉,是ndgrid才有回圈。meshgrid没有。 01/23 16:44
5F:推 sunev:ndgrid的回圈很难跑超过五次吧....不会是效能瓶颈啊... 01/23 23:38