Matlab学习【1】

Matlab入门学习

第2节 矩阵和向量的使用–索引和提取多个元素



0. 前言

通过这一节的学习我们可以知道如何对数组进行索引,如何提取多个元素,如何更高数组中的值。


1. 对数组进行索引

task1:随机生成一个6x5的矩阵,取出第5行第4列的元素,并将其赋予变量y;

>> data=rand(6,5)

data =

	0.2785    0.9572    0.7922    0.6787    0.7060
	0.5469    0.4854    0.9595    0.7577    0.0318
	0.9575    0.8003    0.6557    0.7431    0.2769
	0.9649    0.1419    0.0357    0.3922    0.0462
	0.1576    0.4218    0.8491    0.6555    0.0971
	0.9706    0.9157    0.9340    0.1712    0.8235

>> y=data(5,4)

y =

    0.6555

>> 

task2:获取变量 data 的最后一行第三列的值。将该值赋给一个名为 x 的变量。

提示:使用end关键字可以作为行或列来索引最后一个元素,end放在第一元素的位置上则代表是最后一行,放在第二元素的位置上则代表最后一列;

	>> x=data(end,3)

	x =

		0.9340

	>> 

task3: 取出倒数第2行和倒数第3行的元素,并将其赋予变量z;

>> z=data(end-1,end-2)

z =

	0.8491

>> 

Tips:再次提醒,Matlab是左闭右闭的,是包含端点值的!

2. 提取多个元素

task1: 创建一个名为density 的变量,其中包含名为 data 的矩阵中第 2 列上的所有元素;

提示:在作索引时,使用冒号运算符( :)可提取此维度中所有的元素,语法为x=A(2,:)表示我要取出第2行所有列的元素,冒号放在第一元素的位置上就代表要取出所有行元素,放在第二元素的位置上就代表要取出所有列元素;

>> data

data =

    3.0000    0.5300    4.0753       NaN
    18.0000    1.7800    6.6678    2.1328
    19.0000    0.8600    1.5177    3.6852
	20.0000    1.6000    3.6375    8.5389
	21.0000    3.0000    4.7243   10.1570
	23.0000    6.1100    9.0698    2.8739
	38.0000    2.5400    5.3002    4.4508

>> density=data(:,2)

	density =

	    0.5300
		1.7800
		0.8600
		1.6000
		3.0000
		6.1100
		2.5400

>> 

task2: 创建一个名为 volumes 的变量,其中包含 data 的最后两列的所有元素。

提示:还记得第一节中讲的冒号的用法吗?它可以取出从第一个元素到最后一个元素的所有值。

>> volumes=data(:,end-1:end)

volumes =

	4.0753       NaN
	6.6678    2.1328
	1.5177    3.6852
	3.6375    8.5389
	4.7243   10.1570
	9.0698    2.8739
	5.3002    4.4508

>>

task3: 使用单个索引值创建一个名为 p 并且包含向量 density 中的第 6 个元素的变量。

提示:直接用A(index)即可获得A向量里的某个值,如x=A(3)代表获取向量A中的第3个元素;

>> density

density =

	0.5300
	1.7800
	0.8600
	1.6000
	3.0000
	6.1100
    2.5400

>> p=density(6)

p =

	6.1100

>> 

task4: 使用索引值范围创建一个名为 p 的向量,其中包含从 density 的第 2 个到第 5 个元素范围内的所有元素。

提示:冒号的第一个用法,(起始元素:终止元素)包含起始元素和终止元素;

>> p=density(2:5)

p =

	1.7800
	0.8600
	1.6000
	3.0000

>> 

3. 更改数组中的值

task1:创建一个名为 v2 并且包含 data 的最后一列元素的向量;

提示:使用冒号运算符和end关键字;

>> v2=data(:,end)

v2 =

	0.5000
	2.1328
	3.6852
	8.5389
   10.1570
	2.8739
	4.4508

>> 

task2::显示 v2 中的第2个元素,并将其更改为 0.5;

>> v2(2)

ans =

	2.1328

>> v2(2)=0.5

v2 =

	0.5000
	0.5000
	3.6852
	8.5389
    10.1570
    2.8739
	4.4508

>> 

task3:输出data,并将 data 的倒数第二行和最后一列中元素的值更改为 0.5;

>> data

data =

	3.0000    0.5300    4.0753    0.5000
	18.0000    1.7800    6.6678    2.1328
	19.0000    0.8600    1.5177    3.6852
	20.0000    1.6000    3.6375    8.5389
	21.0000    3.0000    4.7243   10.1570
	23.0000    6.1100    9.0698    2.8739
	38.0000    2.5400    5.3002    4.4508

	>> data(end-1,end)=0.5

	data =

	 3.0000    0.5300    4.0753    0.5000
	18.0000    1.7800    6.6678    2.1328
	19.0000    0.8600    1.5177    3.6852
	20.0000    1.6000    3.6375    8.5389
	21.0000    3.0000    4.7243   10.1570
	23.0000    6.1100    9.0698    0.5000
	38.0000    2.5400    5.3002    4.4508

	>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值