如果MATLAB程序循环体中有递推公式,那还能向量化吗?比如以下程序如何向量化?

a(1)=5;for i=1:1:100 a(i+1)=a(i)-3;end

并不是所有的给出递推公式的循环体不能向量化。能否向量化取决于能否由给出的递推公式的到闭式解。比如你的例子:递推公式是a(i+1)=a(i)-3,那么很容易得到每一个元素的闭式解:a(i) = 5 - 3*(i-1),所以,这个循环就可以向量化了:a = 5 - 3*[0:100];
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-08
应该不能。时至今日,个人观点,没有必要过分追求向量化

Matlab程序中的循环语句怎么向量化?急
a2=a(2:end);out1=a2-a1-1;out=max([out1,length(vector)-a(end)]);

matlab 怎么样定义一个向量或者矩阵来存储 for循环得出的函数呢? 比 ...
进行预置通常很重要(如果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下用循环建立符号数组的办法
通过上面的分析,基本上可以说,这种做法不可行。有没有可能通过对程序进行优化来解决呢?上面的代码使用了向量化的运算,照理说,已经是MATLAB最高效率的代码写法了。如果改写成显式循环的方法,代码如下:N=5;[i,j,k,l]=ndgrid(1:N,1:N,1:N,1:N);syms xy=sym(zeros(N,N,N,N));n=i+...

matlab提高效率:如何将这个循环向量化
另一个长度为n的向量b。c=a*b;%(m*n矩阵)把a进行边界延拓,变成重复性的矩阵d[1,2,3;1,2,3;1,2,3;1,2,3]这样。使和c的大小相同。具体命令忘记了 [qwe,qwe]=find(d-c.^2==0) %找出为0的个数,就是相等的个数 大致思路是这样的,向量叉乘,避免多次循环 ...

matlab向量化是什么
MATLAB中的向量化指的是将循环结构转化为向量运算。在MATLAB中,向量是一维数组,而矩阵是二维数组。通过向量化,我们可以利用MATLAB的内置函数和操作符,直接在向量和矩阵上进行操作,而无需显式地编写循环结构。2. 向量化优势:向量化编程的优势在于提高计算效率。由于MATLAB对向量和矩阵运算进行了优化,向量...

matlab向量化是什么
向量化是MATLAB的一个重要特性,它允许开发者以更高效的方式处理数据。在传统的编程中,我们经常使用循环结构来迭代处理数据,而MATLAB的向量化运算则可以省去循环,直接将操作应用于整个数组或矩阵。这样做不仅可以提高程序的运行速度,还能使代码更加简洁易读。在MATLAB中进行向量化运算的主要优势体现在以下几个...

求助: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循环向量化
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 矩阵计算为什么不可思议的快?
不用那么麻烦吧,测试一下就用tic和toc命令看看运行时间就好了,一般自己实现的程序如果有工具箱函数的话,可能比如工具箱函数运行的快,一个比较常用的就是for循环和向量化的对比,如果可以向量化的for,向量化前后运行时间有质的提高。

相似回答
大家正在搜