matlab如何从一向量a中提取数据组成一个新的向量,使得新的向量包含a中所有元素,且没有重复

设a=[2,3,5,8,3,2,5,8,6,4,7,6,8]
如何从a得到一个向量b,使得b为a中不重复元素组成的向量,
即b=[2,3,5,8,6,4,7]

a=[2,3,5,8,3,2,5,8,6,4,7,6,8];
len=length(a);
%将重复的数字设为非数
for n=1:len
for m=n+1:len
if a(m)==a(n)
a(m)=nan;
end,
end,
end;
%去掉a中的非数
a(find(isnan(a)))=[];
b=a;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-15
如果资源足够的话,做两层循环判断就可以了追问

有没有命令或者代码之类的?谢谢

第2个回答  2012-10-16
b=unique(a);就可以了

matlab如何从一向量a中提取数据组成一个新的向量,使得新的向量包含a...
b=a;

在matlab中在已知向量中取连续数据形成新的多个向量怎么实现?
n=100%例如从1~100 X=1:1:n;for i=1:1:n-3 Y(ii,:)=X(i:i+3);end Y%矩阵Y的各行即为所需的向量,计算时调用即可

MATLAB里面怎么提取一个行向量的某几列元素?
首先,打开MATLAB,创建一个矩阵,例如a=[1 4 6;7 8 9],这将创建一个2x3的矩阵。接着,通过reshape函数将其转换为行向量。输入b=reshape(a,1,6),这里的1表示行数,6表示元素总数,这会将矩阵a的元素展平成一个1行6列的行向量。执行这个命令后,你会看到矩阵a已经被转换成了行向量,显示...

matlab从一组向量中按要求提取某些数值,同时返回位置和数值。
function [xnum,xloc]=findele(x)n=length(x);for i=1:n if(x(i)>3)xnum(i)=x(i);xloc(i)=i end end

如何用MATLAB来把矩阵的每一列抽出来,来组成一个一列的矩阵哦
使用sum指令就可以了,如果A是一个向量,sum(A)返回所有元素的总和.如果A是一个矩阵,sum(A)把A的列作为向量,返回一个包含每一列所有元素的总和的行向量.

求助matlab中怎样把一个行向量中不为零的元素提出来,形成一个新的行向 ...
>> d=[2.5000 4.4444 0 17.7778 0 0 0 0 0]d = 2.5000 4.4444 0 17.7778 0 0 0 0 0 >> d(d==0)=[]d = 2.5000 4.4444 17.7778 >>

MATLAB里面怎么提取一个行向量的某几列元素?
1、首先在电脑中打开matlab,命令行窗口输入a=[1 4 6;7 8 9] ,创建矩阵,如下图所示。2、输入b=reshape(a,1,6),将a矩阵变成行向量,其中1是1行,6是a矩阵的元素个数,如下图所示。3、按回车键之后,可以看到a矩阵已经变成行向量了,如下图所示。4、然后输入b=[a(1,:),a(2,:)]...

在matlab中如何获取某已知列向量中的每一个元素的值?并且将使用这些值...
for i = 1:max(sizeof(x))x(i)end

matlab如何把向量中的各元素转换成一个数?要高效的
楼上的方法都很好,谢谢大家")这个问题的起源是想判断一个循环,当向量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,...

matlab 中如何在一个向量中随机抽取一个元素
rand 生成一个[0, 1] 之间的随机实数。length(a) - 1 是a的元素个数减去1。rand * (length(a) - 1) + 1把这个随机数变为 [1, a的元素个数] 之间的随机实数。uint16(...)把这个实数转化为无符号16位整数,当然你用int16或者uint32等等也行,总之必须满足数组下标是整数类型的要求。最...

相似回答