[心得] 循环问题

楼主: Lionel (祝福与成全)   2015-03-24 23:37:40
A=[1 2 3 4 5 6;
1 2 3 4 5 6;
1 2 3 9 9 9;
1 2 3 9 7 7;
1 2 3 9 7 7;]
欲得B
B=[11 12 13 14 15 16;
11 12 13 14 15 16;
11 12 13 9 9 9;
11 12 13 9 7 7;
11 12 13 9 7 7;]
如果我希望
循环在i第3层 碰到j第4层后(4&5&6)不跑 跳i第4层
循环在i第4层 碰到j第4层后(4&5&6)不跑 跳i第5层
循环在i第5层 碰到j第4层后(4&5&6)不跑
简单来说 右下方那块 保持不动
该怎么办?
ps
不要用
C=A(4:6,4:6);
D=A+10;
作者: profyang (prof)   2015-03-24 23:45:00
用ifif i>=3....for j=1:3类似这样吧然后else 才for j=1:6
作者: jatj   2015-03-25 10:00:00
为什么不要用?
楼主: Lionel (祝福与成全)   2015-03-25 10:34:00
我在算一些影像处理的东西 有需要这种特殊功能知道可这样算 但我只是把大问题拆成小问题来问
作者: physbook (路克)   2015-03-25 10:44:00
如果9和7有特殊意义的话也是可以用find啦
楼主: Lionel (祝福与成全)   2015-03-25 10:44:00
真正的问题不是那么简单感觉是不是用continue阿?
作者: wallaceboy (YD)   2015-03-25 15:04:00
在j那层 写 if (i > 2 ) && ( j > 2) break end把B要改成怎样 放在if 前面和 j 循环中
作者: kevio (成仔)   2015-03-25 18:21:00
你要不要如何判断 4~6 那边矩阵的方法说出来?这样这里也许有神版友可以用矩阵运算帮你算用循环很累 @@~ matlab还是少用循环比较好
作者: jatj   2015-03-26 09:25:00
不是不能用循环 满足几个条件循环跟矩阵是一样快的mastering matlab有详细说明
作者: profyang (prof)   2015-03-26 17:23:00
jatj大可否稍微说明一下要那些条件呢?感谢!我测试 N=100000; a=ones(1,N)+1i*ones(1,N);b=ones(1,N)+1i*2*ones(1,N); c=zeros(1,N);tic; c=a.*b; toc;所花的时间和d=zeros(1,N);for k=1:N for k=1:N d(k)=a(k)*b(k); end这样时间还是差很多@@ 我两个要填的矩阵c和d也都有先宣告...印象中之前有看过文章说这时间差是平行运算造成的?
作者: jatj   2015-03-29 13:18:00
我书放公司 等周一吧

Links booklink

Contact Us: admin [ a t ] ucptt.com