请问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

参考技术A

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]。有没有一个现成的函数实现呀的主要内容,如果未能解决你的问题,请参考以下文章

MATlAB中怎么把一组数据的顺序倒过来

matlab如何将一个一维数组从大到小排序

matlab中怎么查找一个数组中所有的非零元素的位置

JAVA数组如何实现逆序存放?

matlab一维数组怎么创建及怎样对每个元素进行赋值

怎么样给一个一维数组全赋成false