关于 matlab for循环向量化

求问这段程序怎么将for循环向量化?
for i=1:m
for j=1:n
if L(i,j)== t
I(i,j)=0;
end
end
end

多谢!

首先要确定这个l和L是不是同一个矩阵,还是你输入错误了。
如果l就是L, 那么把这个for循环换成:
L(L==t)=0;

如果l与L不一样, 那么把这个for循环换成:
l(L==t)=0;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-14
clear all;clc;
m=10;
n=6;
t=2;
L=rand(m,n);
L(1,2)=t;
L(4,5)=t;
%这部分是模拟数据
L(L==t)=0;本回答被网友采纳
第2个回答  2013-07-14
十分简捷, 一句即可

l(L==t)=0;

怎么matlab循环向量化?下面程序能不能循环向量化,for循环算了好长时间...
向量化实际上就是矩阵化,利用点运算代替for循环,利用matlab软件强大的矩阵运算能力优化程序,其含义如下: sum1=0; for i=1:100 for j=1:100 for k=1:100 d=i.^2+j.^2+k.^2; sum1=sum1+d; end end end 向量化: i=1:100;j=1:100;k=1:100; sum1=sum(i....

求助:matlab for循环向量化的问题
【解法1】x0=-5;y0=0;z0=0;xx=1:3:300;yy=[5,7,-4,6,12];zz=[1,7,8,-9,3];xx100 = (x0-xx).^2;yyzz5 = (y0-yy).^2+(z0-zz).^2;xx1005 = repmat(xx100', 1, 5);yyzz1005 = repmat(yyzz5, 100, 1);r1 = sqrt(xx1005 + yyzz1005);r-r1 % 验算...

matlab 怎么样定义一个向量或者矩阵来存储 for循环得出的函数呢? 比 ...
A=zero(n,1);进行预置通常很重要(如果n不大倒可以不做)。2、提高MATLAB程序效率的另一个要点是向量化(Vectorization)代替显式循环。向量化表达式主要使用点运算操作符。例如,就楼主的问题而言,可以很简单的写成 A=x.^(1:n);省略了 for 循环,对于程序效率也会有很大提升。关于点运算更详细的介...

MATLAB循环向量化
MATLAB循环向量化 初学MATLAB求大神指教form=1:256forn=1:256h_sampling(2*m-1:m*2,2*n-1:n*2)=h(m,n);endend想去掉for循坏,用向量优化加速,... 初学MATLAB求大神指教for m=1:256 for n=1:256 h_sampling(2*m-1:m*2,2*n-1:n*2)=h(m,n); endend想去掉for循坏,用向量优化加速, 展开...

matlab中for循环向量化
YY=B(1,1)+B(2,1)*mm+B(3,1)*nn+B(4,1)*mm.*mm+A(5,1)*mm.*nn+B(6,1)*nn.*nn+B(7,1)*mm.*mm.*mm+B(8,1)*mm.*mm.*nn+B(9,1)*mm.*nn.*nn+B(10,1)*nn.^3;g1=zeros(size(mm));g1(n,m)=imageA(round(YY),round(XX));[q,r]=find(round(XX)...

matlab双重for循环嵌套if向量化
如果上述条件不满足,则代码还需要作一些调整。有问题请追问。b1 = Cb(1:x,1:y)-(Mb+Db*sign(Mb));b2 = Cr(1:x,1:y)-(1.5*Mr+Dr*sign(Mr));idx = b1<abs(1.5*Db) & b2<abs(1.5*Dr);Ciny = Lu(idx);tst = zeros(size(Lu));tst(idx) = Lu(idx);...

matlab 怎样用向量代替for 循环 比如: ax
例如 mysum=0 for i=1:100 mysum=mysum+i^2;end 用向量 i=1:100;x=i.^2;mysum=sum(x);for 循环算法比向量算法慢很多,但向量化占用内存大。有些for循环可以向量化,有些则不能或不容易,而且有些也没必要,当然能用向量化的更好。这主要靠你自己选择和琢磨了。

设计的matlab主程序为for循环,怎么提高效率
在for循环中需要改变大小的数据最好是一次性在开始就定义好大小;for循环中不要使用plot等图形绘图函数;尽量使用向量化表达方式;尽量使用内置函数,效率一般都会比你自己写的高。等等等等等等 这种没有可以照搬的模式的.

如果你觉得MATLAB运行速度太慢,以下是一些建议来优化代码的执行速度...
1. **向量化操作**:利用MATLAB的强大向量化能力,避免循环执行。向量化操作通常比循环更快,因为它们优化了内存访问和处理器使用。例如,使用矩阵运算而非循环遍历数组。2. **预分配数组**:在循环外部预先定义数组大小,避免在循环中动态增大数组,这可以减少内存重新分配的开销。3. **避免不必要的内存...

关于matlab使用数组计算内存耗费太大,怎么解决
一般来说,向量化之所以快就是牺牲了空间来换取时间。如果数组太大,使用向量化内存溢出的话,那就尽量还是用for循环来解决。不过有一种思路也许可行,在for循环中分块向量化,比如对于你这个例子:x=1:2e3;tic w=bsxfun(@minus,x',x);toc tic n=2; %一次计算量 w1=zeros(numel(x),'double')...

相似回答