数组a=[2 3 2 3 5 2]
我想删除数组a中某些元素 这些元素的位置由数组b中的元素代表着 b=[1 3 6]
具体怎么实现呢 我编的程序有点问题 各位高手帮帮忙啊~~
这个问题对matlab来说确实太简单了
你的目的无非就是要删除a中的2
一句话可以实现:
a(a==2)=[] 这就可以删除a中等于2的元素
该方法等价于:
id=find(a==2);% 查找下标
a(id)=[]; %删除指定下标元素
类似的 a(a<3)=[] 就是删除数组a中小于3的元素,对你给的数据而言,结果一样
你的目的无非就是要删除a中的2
一句话可以实现:
a(a==2)=[] 这就可以删除a中等于2的元素
该方法等价于:
id=find(a==2);% 查找下标
a(id)=[]; %删除指定下标元素
类似的 a(a<3)=[] 就是删除数组a中小于3的元素,对你给的数据而言,结果一样
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-03-10
matlab删除很简单,就令其为[]即可。
a=[2 3 2 3 5 2];
b=[1 3 6];%保证升序
[m,n]=size(b);
for i=1:n
a(b(i)-i+1)=[];
end
a%输出a
a=[2 3 2 3 5 2];
b=[1 3 6];%保证升序
[m,n]=size(b);
for i=1:n
a(b(i)-i+1)=[];
end
a%输出a
第2个回答 2011-03-11
%a是存储数据的数组名,find是找到大于122的数的位置
a(Locate)=[]; %删除数组a中大于122的元素
a(Locate)=[]; %删除数组a中大于122的元素
第3个回答 2011-03-10
这个。。 个人感觉只能用循环了解决了
result=zeros(numel(a)-numel(b),1);
for index1=1:numel(a)
for index2=1:numel(b)
if index1~=b(index2)
result=a(index1)
end
end
end
result=zeros(numel(a)-numel(b),1);
for index1=1:numel(a)
for index2=1:numel(b)
if index1~=b(index2)
result=a(index1)
end
end
end
第4个回答 2011-03-10
a(b)=[]本回答被提问者采纳