matlab创建一个新向量,使其为vec中的前半部分与后半部分对换的结果
2个回答
展开全部
不清楚你具体指的前半部分后半部分是什么,这个命令也许可以帮到你
vec=[1 2;3 4]
vec_new1=fliplr(vec)=[2 1;4 3];%左右对称调换
vec_new2=flipud(vec)=[3 4;1 2];%上下对称调换
vec=[1 2;3 4]
vec_new1=fliplr(vec)=[2 1;4 3];%左右对称调换
vec_new2=flipud(vec)=[3 4;1 2];%上下对称调换
更多追问追答
追问
求大神告知另一题,vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 —65 —343]。创建一个新的向量vecG,使其包含vec中去掉索引值为奇数且取值为2或4的元素后的所有元素。感谢😄😄😄
追答
vec=[4 5 2 8 4 7 2 64 2 57 2 45 7 43 2 5 7 3 3 6253 3 4 3 0 -65 -343]
m=length(vec);
n=floor(m/2);
vecG=vec
for i=1:n
if vecG((i-1)*2+1)==2||vecG((i-1)*2+1)==4;
vecG((i-1)*2+1)=nan;
end
end
vecG(isnan(vecG))=[]
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
2014-05-11
展开全部
vec=[a,b,...,c];%设vec为一行向量。
[m,n]=size(vec);
vec1=zeros(1,n);
if mod(n,2)==0
for i=1:n/2
vec1(i)=vec(n/2+i);
end
for i=n/2+1:n
vec1(i)=vec(i-n/2);
end
else
for i=1:(n-1)/2
vec1(i)=vec((n-1)/2+i+1);
end
for i=(n+1)/2+1:n
vec1(i)=vec(i-(n-1)/2-1);
end
vec1((n-1)/2+1)=vec((n-1)/2+1);
end
vec1
得到的vec1就是要的结果
[m,n]=size(vec);
vec1=zeros(1,n);
if mod(n,2)==0
for i=1:n/2
vec1(i)=vec(n/2+i);
end
for i=n/2+1:n
vec1(i)=vec(i-n/2);
end
else
for i=1:(n-1)/2
vec1(i)=vec((n-1)/2+i+1);
end
for i=(n+1)/2+1:n
vec1(i)=vec(i-(n-1)/2-1);
end
vec1((n-1)/2+1)=vec((n-1)/2+1);
end
vec1
得到的vec1就是要的结果
追问
谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询