mdsk.net
当前位置:首页 >> mAtlAB 向量元素依次相除 >>

mAtlAB 向量元素依次相除

这样对应元素相除是数组之间的运算,而非矩阵之间的运算>> a=[1,2,3,4,5,6,7,8,9];>> b=[2,4,5,7,8,9,5,8,6];>> a./bans = 0.5000 0.5000 0.6000 0.5714 0.6250 0.6667 1.4000 1.0000 1.5000

在Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\B是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A).

两个大小相等的向量(矩阵),元素依次相除的话,这样假设a,b都是n行 m列a=a./b如果是一个向量两个相邻元素依次除的话,那得写一个带循环的代码吧.

可以定义这样的向量.例如x=zeros(n,1),生成n*1的0向量,x=ones(n,1),生成n*1的全1向量.那么如果要生成都是k的向量,就可以x=k*ones(n,1).即可.其他照此类推,应该是可以实现的.欢迎追问~

b=sum(a)记得采纳啊

p = randperm(10) p = 8 2 10 7 4 3 6 9 5 1

clear allclcn=; %设定向量维数A=; %初始A向量B=; %初始B向量[Anum,index]=sort(A); %A从大到小排列,返回排序后新的向量Anum和索引for ni=1:n Bnum(ni)=B(index(ni));end

不需要函数,用c=a.*b就行,意思是做阵列乘法,即对应项相乘.而a*b是作矩阵乘法.

假设第一个向量是A用一个for循环就可以完成for i = 1:size(A)B(i) = sum(A(1:i));end就这样,很简单.

加如你原来的两个向量是a,b,当然他们的大小要一致c=zeros(size(a));TF=(a>b);c(TF)=a;c(~TF)=b;这样的到的c是,a,b中对应位置元素数值较大的把大于号改小于号,得到的就是两者对应元素数值较小的

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com