请问Matlab中怎么把一维数组逆序排列,如将a=[1,2,3,4,5],转成b=[5,4,3,2,1]。有没有一个现成的函数实现呀
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问Matlab中怎么把一维数组逆序排列,如将a=[1,2,3,4,5],转成b=[5,4,3,2,1]。有没有一个现成的函数实现呀相关的知识,希望对你有一定的参考价值。
多谢。
用:b=FLIPLR(a);
fliplr左右翻转矩阵
语法:
B=fliplr(A)
将矩阵A的列绕垂直轴进行左右翻转matabc
如果A是一个行向量,fliplr(A)将A中元素的顺序进行翻转。
如果A是一个列向量,fliplr(A)还等于A。
举例说明:
例一:如果A是一个行向量
A=[1 3 5 7 9]
fliplr(A)
ans=[9 7 5 3 1]
例二:如果A是一个列向量
A=[1
3
5
7
9]
fliplr(A)
ans=[1
3
5
7
9]
扩展资料:
【功能简介】实现矩阵左右翻转。
【语法格式】
B=fliplr(A)
对矩阵A进行左右翻转。
【实例3.47】对矩阵magic(3)进行左右翻转。
>> a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> b=fliplr(a) %左右翻转
b =
6 1 8
7 5 3
2 9 4
【实例分析】左右翻转的过程中,如果矩阵有奇数列,那么中间一列是没有变化的。
参考资料:
百度百科——fliplr
matlab中把一维数组逆序排列,可以通过fliplr函数来进行操作。
fliplr,是指对矩阵操作的函数,可以实现矩阵翻转。
将一维数组逆序排列步骤(如a=[1,2,3,4,5]转成b=[5,4,3,2,1]):
1、双击打开matlab应用程序。
2、在matlab界面中的“命令行窗口”中输入命令。
3、根据红色区域位置,在“命令行窗口”输入“a=[1,2,3,4,5]”。
4、通过函数fliplr求矩阵逆序排列,在“命令行窗口”输入“b=fliplr(a)”,按下回车键。可求得矩阵逆序排列b=[5,4,3,2,1]。
参考技术B用:b=FLIPLR(a);
fliplr左右翻转矩阵
语法:
B=fliplr(A)
将矩阵A的列绕垂直轴进行左右翻转matabc
如果A是一个行向量,fliplr(A)将A中元素的顺序进行翻转。
如果A是一个列向量,fliplr(A)还等于A。
扩展资料:
matlab中提供了许多对矩阵操作的函数,可以实现矩阵的三角矩阵的提取(triu、tril)、矩阵的翻转(flipud、fliplr、Flipdim)和旋转(rot90)等各种操作。
应用举例
>> a=dec2bin(8)%将8变为二进制
a =
1000
>> fliplr(a)%对二进制进行翻转,从1000变为0001
ans =
0001
参考资料来源:百度百科-fliplr
参考技术C 没有这种函数吧,自己编一个函数,加入库不就可以了这个很简单啊
Function (B)=PAIXU(A)
;j=1;
n=length(A);
for j=1:n
B(n-j+1)=A(j);
end
没仔细弄你在改改,应该可以的 参考技术D FLIPLR(a);
你可以在matlab中输入help FLIPLR具体看一看!本回答被提问者采纳
一维数组的逆序存放问题
一维数组的逆序存放问题提供两种思路
算法一:
for (i=0 ; i < n/2; i++) {
auto t = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = t;
}
代码示例:
#include<iostream>
using namespace std;
int main() {
int a[10] = {9,8,7,6,5,4,3,2,1};
for (int i = 0;; i < 5; i++)
{
auto t = a[i];
a[i] = a[10 - i - 1];
a[10 - i - 1] = t;
}
for (int i=0; i < 10; i++)
cout<<a[i]<<" ";
return 0;
}
这个算法时间复杂度O(n);空间复杂度S(n)=O(1)
算法二:
for (i = 0; i < n; i++)
b[i] = a[n - i - 1];
for (i = 0; i < n; i++)
a[i]=b[i];
代码示例:
#include<iostream>
using namespace std;
int main() {
int a[10] = {9,8,7,6,5,4,3,2,1};
int b[10] = {};
int i;
for (i = 0; i < 10; i++)
b[i] = a[10 - i - 1];
for (i = 0; i < 10; i++)
a[i]=b[i];
for (int i=0; i < 10; i++)
cout<<a[i]<<" ";
return 0;
}
这个算法时间复杂度O(n);空间复杂度S(n)=O(n)
综合比较,算法选择第一个
以上是关于请问Matlab中怎么把一维数组逆序排列,如将a=[1,2,3,4,5],转成b=[5,4,3,2,1]。有没有一个现成的函数实现呀的主要内容,如果未能解决你的问题,请参考以下文章