作者Lionel (跟快乐交往)
看板MATLAB
标题[心得] 回圈问题
时间Tue Mar 24 23:37:40 2015
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;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.254.241.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1427211487.A.5C4.html
1F:推 profyang: 用if 03/24 23:45
2F:推 profyang: if i>=3....for j=1:3类似这样吧 03/24 23:50
3F:→ profyang: 然後else 才for j=1:6 03/24 23:51
4F:→ jatj: 为什麽不要用? 03/25 10:00
5F:→ Lionel: 我在算一些影像处理的东西 有需要这种特殊功能 03/25 10:34
6F:→ Lionel: 知道可这样算 但我只是把大问题拆成小问题来问 03/25 10:44
7F:推 physbook: 如果9和7有特殊意义的话也是可以用find啦 03/25 10:44
8F:→ Lionel: 真正的问题不是那麽简单 03/25 10:44
9F:→ Lionel: 感觉是不是用continue阿? 03/25 10:55
10F:推 wallaceboy: 在j那层 写 if (i > 2 ) && ( j > 2) break end 03/25 15:04
11F:→ wallaceboy: 把B要改成怎样 放在if 前面和 j 回圈中 03/25 15:05
12F:→ kevio: 你要不要如何判断 4~6 那边矩阵的方法说出来? 03/25 18:21
13F:→ kevio: 这样这里也许有神版友可以用矩阵运算帮你算 03/25 18:22
14F:→ kevio: 用回圈很累 @@~ matlab还是少用回圈比较好 03/25 18:23
15F:→ jatj: 不是不能用回圈 满足几个条件回圈跟矩阵是一样快的 03/26 09:25
16F:→ jatj: mastering matlab有详细说明 03/26 09:25
17F:推 profyang: jatj大可否稍微说明一下要那些条件呢?感谢! 03/26 17:23
18F:→ profyang: 我测试 N=100000; a=ones(1,N)+1i*ones(1,N); 03/26 17:24
19F:→ profyang: b=ones(1,N)+1i*2*ones(1,N); c=zeros(1,N); 03/26 17:24
20F:→ profyang: tic; c=a.*b; toc;所花的时间和 03/26 17:25
21F:→ profyang: d=zeros(1,N);for k=1:N for k=1:N d(k)=a(k)*b(k); end 03/26 17:28
22F:→ profyang: 这样时间还是差很多@@ 我两个要填的矩阵c和d也都有先宣 03/26 17:28
23F:→ profyang: 告...印象中之前有看过文章说这时间差是平行运算造成的? 03/26 17:29
24F:→ jatj: 我书放公司 等周一吧 03/29 13:18