我是靠谱客的博主 顺利眼睛,最近开发中收集的这篇文章主要介绍matlab实现第奇数个元素和第偶数个元素分离的效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最直观的做法是使用for循环,然后用 2n 和 2n+1 区分,但既然是matlab,就要发挥它处理数组的优势。

首先新建一个数组,为了更直观,就用如下这个:

[1;2;3;4;5;6;7;8;9;10]
ans =
1
2
3
4
5
6
7
8
9
10

行向量和列向量差不了太多,这里用的是列向量。

reshape([1;2;3;4;5;6;7;8;9;10],2,5)
ans =
1
3
5
7
9
2
4
6
8
10

这里需要注意reshape要求后面两个参数相乘的结果和原数组元素数目是一样的,即:2*5=10

由于奇偶分离之前的向量是列的,分离之后也把它置成列的会比较好(看起来顺眼),就是个转置的事情罢了。

完整代码:

case1 = reshape([1;2;3;4;5;6;7;8;9;10],2,5);
case1.'
ans =
1
2
3
4
5
6
7
8
9
10

大成功!

我当时想着可不可以换一下,就有了下面这个代码:

case2 = reshape([1;2;3;4;5;6;7;8;9;10],5,2)
case2.'
case2 =
1
6
2
7
3
8
4
9
5
10
ans =
1
2
3
4
5
6
7
8
9
10

后来想清楚了,奇偶分离就要求了2个2个分开,所以reshape的第二个参数必定是2。

如果要推广到一般数组的话,也可以。

% 要求将一维列数组seqQ的第奇数个元素和第偶数个元素分离
% 已知条件:seqQ
% 所求数组:seqFinal(列
seqLen = length(seqQ);
seqTemp = reshape(seqQ,2,seqLen/2);
seqFinal = seqTemp.';

最后

以上就是顺利眼睛为你收集整理的matlab实现第奇数个元素和第偶数个元素分离的效果的全部内容,希望文章能够帮你解决matlab实现第奇数个元素和第偶数个元素分离的效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部