use*_*251 0 matlab conditional loops nested
如果你有一个随机矩阵,例如5x5:
A(i,j) = (5 4 3 2 1
4 3 2 1 0
5 4 3 2 1
4 3 2 1 0
5 4 3 2 1)
Run Code Online (Sandbox Code Playgroud)
第二个阵列:
B(1,j) = (4 5 6 7 8)
Run Code Online (Sandbox Code Playgroud)
如果只有当B(1,j)的值大于A的某个colomn值时,才需要将B的值赋值给A?
例如,B(1,1)= 4并且在A的第一个colomn中它大于A(1,1),A(3,1)和A(5,1),所以这些必须被4替换在第二个colomn中,没有什么需要更换,等等.
谢谢!
您可以在没有任何显式循环的情况下执行此操作bsxfun:
A = [5 4 3 2 1
4 3 2 1 0
5 4 3 2 1
4 3 2 1 0
5 4 3 2 1];
B = [4 5 6 7 8];
A = bsxfun(@min,A,B);
Run Code Online (Sandbox Code Playgroud)
结果:
A =
4 4 3 2 1
4 3 2 1 0
4 4 3 2 1
4 3 2 1 0
4 4 3 2 1
Run Code Online (Sandbox Code Playgroud)
在MATLAB的后续版本(2016b及更高版本)中,您甚至可以省略bsxfun并获得相同的结果.
A = min(A,B);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |