matlab创建一个新向量,使其为vec中的前半部分与后半部分对换的结果

 我来答
lccever
推荐于2017-11-26 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:52.7万
展开全部
不清楚你具体指的前半部分后半部分是什么,这个命令也许可以帮到你

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 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
匿名用户
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就是要的结果
追问
谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式