mdsk.net
当前位置:首页 >> MATLAB列向量中每个元素各自参与运算,然后输出到... >>

MATLAB列向量中每个元素各自参与运算,然后输出到...

b=(1-exp(a/3))./(a/3);注意中间除号前有一点

举例:比如A=[1 2 3]; B=[4 5 6];通过向量元素添加得到C=[1 4 2 5 3 6]. MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和

其实挺简单.首先,忽略固定为0的几项,直接排列不固定的几项,比如如你所说的1、2、3、4、5、0、0:x=[1,2,3,4,5,0,0]; y=perms(x); y就是x的所有排列,perms是系统函数,你可以help一下.但关键是有两个零,有些排列是重复的,此时使用化简函数unique即可:y=unique(y,'rows'); y变成了一个排列的矩阵,每一行是一种排列,而且不重复.最后在需要的位置插入一些0的列向量即可.

将多个数放在一个单元里面 那么单元里面只能是字符类型 就是要先把数据转化为字符串,然后写到一格里面>> b=[3 5 7 11 20 22 24 32];>> c=num2str(b);>> xlswrite('G:\1.xlsx',{c},'Sheet1','B6');

求向量中最大值元素及其序号的简单代码为: [m,i] = max(A).其中A是行/列向量,m是最大值,i是最大值元素的索引即序号.注意:如果A中存在多个并列的最大值,上面的代码只会得到第一个最大元素的位置.因此,通用的写法如下:i = find(A==max(A)) 如果拓展到二维矩阵,写法也类似:[i,j] = find(A==max(max(A))) 示例如下:

a=[1 2;3 4];b=[1;2];c=[];for i=1:cols(a)c=[c,a(:,i).*b];endc当然,只要矩阵行数等于列向量行数,这个小程序都是可以解决的

楼上的方法都很好,谢谢大家")这个问题的起源是想判断一个循环,当向量a中的元素不全为1时执行while 循环,a中只有0、1、2这三类数据.例如,初始时a=[1 2 0 1 0],但是我用(while a~=1)或者(while a~=[1 1 1 1 1])时程序根本不执行while中的语句,所以才想把a转换成数字12010,这样可以直接跟11111进行比较.下面这个语句倒是可以用(while not(all(a==1))),但是总感觉效率不高(a的维数大概是500),不知道这条语句跟上面转换成数字后进行比较的方法相比哪种方法的效率高?请问有没有其它好的办法啊?

建立一个文件shiyan1.m,然后用下面的代码测试,不知道你是不是这个意思:function shiyan1 clc; global a; a = { 'ab'; 'cde'; 'fg'; 'hi'; 'kl' }; p = { 'fg;kl;cde'; 'hi;ab' }; p0 = cellfun( @subfun, p, 'UniformOutput', false ); function po = subfun( pi ) global a;

直接写就行了啊>> x=1:10;>> p=3*x+4;p = 7 10 13 16 19 22 25 28 31 34

试试norm(aa),这应该是最快的了.求向量模长嘛.可以用profile分析一下,这种built-in函数一般是很快的.

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