关于MATLAB数组指令涵义的问题。很基础的几道题。求帮助
B=A(3:-1:1,1:3)表示提取A矩阵的第3行到第1行,第1列到第3列;3:-1:1表示从3到1,依次减1.
C=A([1 3],1:2)表示提取A矩阵的第1行,第3行,第1列到第2列;因为行数是用[1 3]表示的,就表示只取第1行,第3行。不知道你问的是不是这个问题。
题太多了,要花好几个小时才做完(我做了一个多小时才完成一半)。
这样的工作量悬赏1000分都算便宜的。
这些都属于很基础的内容,建议楼主自己生成一个矩阵,然后执行这些命令,看结果是怎样的,好好体会一下。
(1)A(3,2):提取矩阵的第3行、第2列元素。
(2)A(9):提取矩阵的第9个元素(也就是第3行、第3列)。
(3)A(1:3:10):提取矩阵的第1、4、7、10个元素(也就是第1行)。
(4)A([1,2],[2,3]):提取矩阵的第1~2行、第2~3列的4个元素构成子矩阵。
(5)A(:,[4,3]):提取矩阵的第4、3列元素构成子矩阵。
(6)A([1 1 2],:):提取矩阵的第1、1、2行元素构成子矩阵。
(7)A(A>3):提取矩阵值大于3的元素构成列向量。
(8)A(end:-2:1,:):提取矩阵的第3行和第1行元素构成子矩阵 。
(9)A([1 3 5 2 4]):提取矩阵的第1、3、5、2、4个元素构成子矩阵。
(10)reshape(A,4,3):把矩阵变成4x3的矩阵。
需要说明的几点:
(1)MATLAB矩阵的元素可以用行、列两个下标索引,也可以用单个下标索引,此时会把矩阵看成一个向量。值得注意的是,MATLAB数组是以列序为主序的(和Fortran相同,但不同于C),也就是说,A(2)指的是A(2,1)而不是A(1,2)。第2、3、7、9、10题都涉及这个问题。
(2)第7题的A>3得到结果是逻辑数组,作为下标使用时,表示提取逻辑真的那些位置。
(3)end作为数组下标使用时,表示其所在维的长度,例如,第8题出现在行下标中,就表示3。
(4)数组下标出现单独的冒号(:)作用等同于1:end,即该维的所有值,例如第5题的冒号表示所有行,第6、8题的冒号表示所有列。
例如:
>> A=reshape(1:12,[3 4])
A =
1 4 7 10
2 5 8 11
3 6 9 12
>> A(1:3:10)
ans =
1 4 7 10
>> A([1,2],[2,3])
ans =
4 7
5 8
>> A(:,[4,3])
ans =
10 7
11 8
12 9
>> A([1 1 2],:)
ans =
1 4 7 10
1 4 7 10
2 5 8 11
>> A(A>3)
ans =
4
5
6
7
8
9
10
11
12
>> A(end:-2:1,:)
ans =
3 6 9 12
1 4 7 10
>> A([1 3 5 2 4])
ans =
1 3 5 2 4
>> reshape(A,4,3)
ans =
1 5 9
2 6 10
3 7 11
4 8 12
% 保存成 exmatix.m 并运行
A = reshape(1:12,3,4) % 构造A矩阵
ans1 = A(3,2)
ans2 = A(9)
ans3 = A(1:3:10)
ans4 = A([1,2],[2,3])
ans5 = A(:,[4,3])
ans6 = A([1 1 2],:)
ans7 = A(A>3)
ans8 = A(end:-2:1,:)
ans9 = A([1 3 5 2 4])
ans10 = reshape(A,4,3)
以下是结果:
A =
1 4 7 10
2 5 8 11
3 6 9 12
ans1 =
6
ans2 =
9
ans3 =
1 4 7 10
ans4 =
4 7
5 8
ans5 =
10 7
11 8
12 9
ans6 =
1 4 7 10
1 4 7 10
2 5 8 11
ans7 =
4
5
6
7
8
9
10
11
12
ans8 =
3 6 9 12
1 4 7 10
ans9 =
1 3 5 2 4
ans10 =
1 5 9
2 6 10
3 7 11
4 8 12
matlab中的数组怎么用?
x=ones(1,n)表示x为全0数组;q=zeros(1,n)表示q为全0数组;n=length(a)表示获得数组a的最大维度。1、数组的维数:在MATLAB中,允许标量数据沿行、列、页等方向排列成 ‘长方体’,而构成数组,而行、列、页等排列方向就分别被 称为行维、列维和页维。2、数组的规模及相关术语:数组沿某...
matlab中有哪几类数组
在MATLAB中,数组主要分为以下几类:1. 数值数组:这是最常用的数组类型,可以存储任何数值类型的数据,包括整数、浮点数等。2. 结构数组:结构数组允许你存储不同类型的元素在一个数组中,并且可以为每个元素提供一个名称。3. 细胞数组:细胞数组是一种特殊类型的数据结构,它存储的是一系列的单元格,...
如何使用Matlab声明矩阵数组
1、首先在Matlab中最常用的声明数组的方式就是使用中括号和分号了,如下图所示 2、然后我们也可以把中括号去掉,改成手动换行,如下图所示,中括号在声明数组的时候就是起到了换行的作用 3、接下来我们还可以用冒号声明矩阵数组,如下图所示,代表的是声明0到2的一维数组,每次数值加1 4、另外如果在...
怎么从matlab的数组中获取数据?
1、打开matlab,在命令行窗口中输入a=[1 2 3 4;4 5 6 7;1 2 3 4],按回车键创建一个3行4列的矩阵。2、如果想获取矩阵第2行第3列的数据,输入a(2,3)。3、想获取矩阵第3列的第一个和第三个,输入a([1 3],3)。4、想获取矩阵某列的连续数据,可以使用a(1:2,3),获取第3列第...
在matlab中怎么引用数组里的元素?
1、下标法(subscripts)A(ii,jj):其中ii和jj可以是一维向量、标量、“:”号或者“end”比如:A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素 A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列 A(1,end-1)表示引用...
如何将MATLAB中的数组中的数据提取出来?
要从MATLAB数组中提取数据,首先打开MATLAB命令行窗口,创建一个示例矩阵,如:a = [1 2 3; 4 5 6; 7 8 9; 6 4 7]。接着,使用索引语法进行提取,如a(1:2,1:3),这将选取矩阵的前两行和前三列,按Enter键后,显示提取结果。然后,尝试提取特定区域,如a(2:3,1:2),这将选择第二...
matlab如何将数组按照逗号间隔进行排列?
表示列数任意,也就是对A整行整行进行操作,逗号前,end表示最后一行,1表示第1行,-1表示从后到前倒着取出A的整列。一般情况下我们顺序来使用,比如A(2:1:end,:)**表示从A第二行取到最后一行,1表示取行时的间隔,若A(2:2:end,:),表示每两行取一行,就是2、4、6行下去到end。
如何将MATLAB中的数组中的数据提取出来?
1、首先,打开MATLAB命令行窗口,输入a = [1 2 3; 4 5 6; 7 8 9; 6 4 7]创建一个a矩阵,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入a(1:2,1:3)以提取矩阵的第1,2行第1到3列,如下图所示,然后进入下一步。3、接着,完成上述步骤后,按Enter键,可以看到...
怎样在matlab中找出数组中所有的最大的值?
1、第一步,需要知道matlab数组找到所有接近某个值的点的坐标是使用“find”函数,可以在命令行窗口中输入“help find”,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入“a =[1 4 5;6 7 8;7 9 12]”,在matlab命令行窗口中创建副本数组,如下图所示,然后进入下一步。3、接着...
matlab有哪几类数组
MATLAB有三种主要的数组类型:1. 标量数组:这是最基本的数组类型,它包含一个元素。2. 列数组(或矩阵):这是二维数组,由行和列组成。MATLAB的矩阵操作非常方便,提供了大量的函数来处理矩阵。3. 稀疏数组:这是用于存储稀疏数据的特殊类型的数组。它们通常用于存储只有很少非零元素的大型矩阵。在实际...
扈洪七味: i是行数,j是列数,k是维数,A(i,j,k)=i+j+k得放在循环体里面去赋值,其值为行数+列数+维数
东城区18522018133: matlab中,数组和字符串数组的区别.将数组转化为字符串数组到底什么意思是. - ?
扈洪七味: 二者的组成不同:数组的组成元素是复数,字符串数组的组成元素是数字字符串;二者的精度不同,数组表示的数都是近似值,字符串数组表示的值都是精确值.例如数组的1/3表示为0.3333,字符串数组表示的是1/3.二者的运算不同,比如数组有>、>=、<、<=等运算,但字符串数组只有==和~=两种运算.字符串数组中还有许多数值运算中所没有的特殊函数,如贝塞尔函数、椭圆积分、误差函数等. 将数组转化为字符串数组的命令是:syms 变量名列.也可以使用函数sym().转化的意思就是说,经过了转化,就可以使用符号计算运算了.
东城区18522018133: A(:,2,:)多维数组在matlab 什么意思 - ?
扈洪七味: matlab多维数组操作1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组.2.利用标准数组函数创建多维数组 A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法.3.利用...
东城区18522018133: matlab 定义数组问题? - ?
扈洪七味: 可以使用胞元数组来实现.例如,你想定义一个含100个元素的数组,数组的每个元素是一个向量,那么可以这样:A=cell(100,1);%定义一个长度为100的胞元数组 a=[1 2 4 5 2];%定义a向量 b=1:23;%定义b向量 A{1}=a;将a向量作为数组A的第一个元素 A{2}=b;%将b向量作为数组A的第二个元素...
东城区18522018133: matlab的指令基本原理 - ?
扈洪七味: 一、常用对象操作:除了一般windows窗口的常用功能键外.1、!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2、who 可以查看当前工作空间变量名, whos 可以查看变量名细节.3、功能键:功能键 快捷键 说明 方向上键 ...
东城区18522018133: matlab逻辑数组 x的答案是什么含义 - ?
扈洪七味: 将矩阵X,按第二维的顺序求和无论原来的X矩阵的大小是怎样的求和之后的结果第二维的长度都变为1因为在这一维的所有数据都加起来了,结果是总和举个例子X=[ 1 2 3 ; 4 5 6; 7 8 9];sum(X,2) ans = 6 15 24原来的X是3x3的矩阵,按第二维求和后是3x1的矩阵其中没个值,是原来第二维,也就是行方向,一行的所有数的和
东城区18522018133: MATLAB中的数组怎么定义和输入? - ?
扈洪七味: Matlab的数据类型就是数组,所有的处理基本都是数组形式的,所以随便定义一个变量就是数组了 像A=[1 2 3]
东城区18522018133: matlab形参为数组的函数定义问题!求解!多谢大神! - ?
扈洪七味: 同样的定义,matlab没有像c语言那样严格的参数类型限制你可以定义function yy = fitnessfct(aa)在函数里面aa(:,n)就是aa的第n列数据aa(m,:)就是aa的第m行数据aa(m,n)就是aa的第m行,n列数据
东城区18522018133: matlab定义数组 - ?
扈洪七味: 下面用一个简单的例子可以说明.你写一个数组B,前面是20个1,后面有10个零,然后用C=perms(B).这里的C就会把你所有的数组表示出来.简单例子如下所示: a=[1 2 3 4]a = 1 2 3 4>> perms(a)ans = 4 3 2 14 3 1 24 2 3 14 2 1 3...
东城区18522018133: matlab中ones是什么意思 - ?
扈洪七味: matlab中ones函数的作用是生成全1阵. ones的使用方法 B=ones(n):生成n*n全1阵. B=ones(m,n):生成m*n全1阵. B=ones([m n]):生成m*n全1阵. B=ones(d1,d2,d3……):生成d1*d2*d3*……全1阵或数组. B=ones([d1 d2 d3……]):生...