高考考试网
当前位置: 首页 高考资讯

matlab常用操作总结(MATLAB学习之进阶指令)

时间:2023-06-01 作者: 小编 阅读量: 6 栏目名: 高考资讯

#元胞数组基本概念:元胞数组是MATLAB的一种特殊数据类型,将元胞数组看作一种无所不包的通用矩阵,或者叫做广义矩阵。我们用MATLAB将他们保存在2×2的cell元胞数组中,将其当作一个储存信息的“储物柜”。假设需要提取上述2×2的cell数组中的字符串"LearningYard",我们通过类似提取矩阵元素的操作指令进行:cell{2,1}或cell{2}。然后需要注意的是需要把矩阵现用空集进行表示,否则在for循环中无法识别Test_Matrix。

分享兴趣,传播快乐,

增长见闻,留下美好!

亲爱的您,这里是LearningYard学苑。

之前小编带领大家学习了一些MATLAB的基础操作,忘记了的同学赶快补课。

今天小编给大家带来的是一些进阶学习,一起来看看吧!

#元胞数组

基本概念:元胞数组是MATLAB的一种特殊数据类型,将元胞数组看作一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素是任何一种数据类型的常数或者常量,每一个元素也具有不同的尺寸和内存占用空间,每一个元素的内容也完全不同,所以元胞数组的元素叫做元胞(cell)。

适用情境:假设自己需要在MATLAB中保存4组信息,它们分别是:

【实数】6;

【向量】[1 2 3];

【文本】LearningYard;

【矩阵】magic(4)。

我们用MATLAB将他们保存在2×2的cell元胞数组中,将其当作一个储存信息的“储物柜”。

代码编写:新建脚本,采用大括号{ }进行cell数组的创建:

运行后,命令行窗口如下显示:

除此之外,还可通过指令“celldisp”来显示所有元胞的内容。

假设需要提取上述2×2的cell数组中的字符串"LearningYard",我们通过类似提取矩阵元素的操作指令进行:

cell{2,1}或cell{2}。

注:这里需要用到大括号。

那么怎么将元胞数组转化为其他形式呢?

cell2mat 将元胞数组转变成为普通的矩阵

mat2cell 将数值矩阵转变成为元胞数组

num2cell 将数值数组转变成为元胞数组

#循环覆盖值累积

在学习VIKOR算法过程中,我们需要确定群体效用值和个体遗憾值的时候用到了“end 1”和矩阵分行操作,假如在该步骤将“end 1”删掉,那么结果会发生怎样的改变呢?

删掉“end 1”后的代码变化后的结果见下图,截图还没有截全,但我们能清楚地看到Best_value和Worst_value的数值随着语句的循环一直在发生更替,而且它们的属性变成了1×1的double形式,不再是向量了。

使用“end 1”有效避免循环语句中数值覆盖的情况,我们来看一下“end 1”具体的工作流程:

Best_value =

1

Worst_value =

0

Best_value =

1 1

Worst_value =

0 0

Best_value =

1 1 1

Worst_value =

0 0 0

Best_value =

1 1 1 1

Worst_value =

0 0 0 0

它会把数值不断累积,使其变成一个向量。但需要注意的是Best_value和Worst_value这两个变量必须先将其定义为一个空集“[ ]”,否则在end 1步骤中会报错。

#行向量转化为矩阵

通过(end 1)指令编码出来的结果都是行向量的形式,如果要将其转化为矩阵,我们可以将矩阵理解为多个规格相同的行向量进行累积,用代码表示为:

[row1;row2;row3;row4]

将行向量用分号分开,它们就组成了矩阵。

以Test_Vector=[1,2,3,4,5,6,7,8,9]为例,将其变为如下形式的3×3矩阵。

方法很简单,代码表示如下:

Test_Vector=[1,2,3,4,5,6,7,8,9]

Size_Test_Vector=size(Test_Vector);

Test_Vector_Column=Size_Test_Vector(2);

Test_Matrix=[ ];

for i=[1:3:Test_Vector_Column]

Test_Matrix_Change=Test_Vector(i:i 2);

Test_Matrix=[Test_Matrix;Test_Matrix_Change];

end

display(Test_Matrix)

首先定义行向量的规格尺寸,以方便对其分行。然后需要注意的是需要把矩阵现用空集进行表示,否则在for循环中无法识别Test_Matrix。最后在for循环内用change的变量对行向量的内容进行截取,用[Test_Matrix;Test_Matrix_Change]的方式重复对Test_Matrix进行赋值,使其变成矩阵的形式。最终得到的结果如下:

#英文学习

1. Cell array

Basic concept: Cell array is a special data type of MATLAB. Cell array is regarded as a kind of all-encompassing general matrix, or generalized matrix. The elements that make up a cell array are constants or constants of any data type. Each element also has a different size and memory footprint. The content of each element is also completely different. Therefore, the elements of the cell array are called cell (cell ).

Applicable situation:

Suppose you need to save 4 sets of information in MATLAB. They are:

We use MATLAB to store them in a 2×2 cell array, treating it as a "storage cabinet" for storing information.

Code writing: create a new script, use braces {} to create a cell array:

After running, the command line window is displayed as follows:

In addition, the content of all cells can also be displayed through the command "celldisp".

Suppose we need to extract the string "LearningYard" in the above 2×2 cell array, we use similar operation instructions to extract matrix elements:

cell{2,1} or cell{2}.

Note: Braces are needed here.

So how to convert the cell array into other forms?

cell2mat transforms a cell array into a normal matrix

mat2cell transforms a numeric matrix into a cell array

num2cell turns a numeric array into a cell array

2. Cycle coverage value accumulation

In the process of learning the VIKOR algorithm, we need to use the "end 1" and matrix branch operations when determining the group utility value and the individual regret value. If "end 1" is deleted in this step, what will happen to the result? Change?

Delete the code after "end 1"

The result of the change is shown in the figure below. The screenshot has not been truncated yet, but we can clearly see that the values of Best_value and Worst_value are constantly changing as the sentence loops, and their attributes have become 1×1 doubles. It's not a vector anymore.

Use "end 1" to effectively avoid the value coverage in the loop statement. Let's take a look at the specific workflow of "end 1":

It will accumulate the value continuously, making it a vector. But it should be noted that the two variables Best_value and Worst_value must first be defined as an empty set "[ ]", otherwise an error will be reported in the end 1 step.

3. Convert row vector to matrix

The result encoded by the (end 1) instruction is in the form of a row vector. If you want to convert it into a matrix, you need to use the following techniques.

We can understand the matrix as the accumulation of multiple row vectors of the same specification, expressed in code as:

Separate the row vectors with semicolons and they form a matrix.

Take Test_Vector=[1,2,3,4,5,6,7,8,9] as an example, and change it into a 3×3 matrix in the following form.

The method is very simple, the code is as follows:

First define the size of the row vector to facilitate its branching. Then it should be noted that the current matrix needs to be represented by an empty set, otherwise the Test_Matrix cannot be recognized in the for loop. Finally, in the for loop, the content of the row vector is intercepted with the variable of change, and the Test_Matrix is repeatedly assigned by the method of [Test_Matrix;Test_Matrix_Change] to make it into the form of a matrix. The final result is as follows

参考资料:谷歌翻译、《MATLAB入门教程》

本文由LearningYard学苑原创,如有侵权请联系删除。

    推荐阅读
  • 别让这些谣言蒙蔽了你的眼睛(这不是危言耸听)

    世卫组织指出,目前全球约半数年轻人在使用手机等设备听音乐时音量高于安全水平。医生表示,“根据听力损失的水平判断,小邵已是重度突发性耳聋。”经诊断,他的听力损失达到50分贝,相当于中等程度的听力损害。欧盟也曾出具调查报告称,戴着耳机听音乐,耳机声音超过85分贝,时长超过30分钟,可能引起暂时性听力下降。如果每天超过89分贝音量听音乐,时长达一小时,持续5年就可能永久丧失听力。

  • 烟花的诗句(关于描写烟花的诗句)

    烟花巷陌,依约丹青屏障——柳永《鹤冲天·黄金榜上》,下面我们就来说一说关于烟花的诗句?——柳永《鹤冲天·黄金榜上》幽兰露,如啼眼。无物结同心,烟花不堪剪。——李贺《苏小小墓》其奈风情债负,烟花部、不免差排。——晏几道《虞美人·玉箫吹遍烟花路》烟花整。——宋太宗《缘识》回首旧游何在,柳烟花雾迷春。——曾觌《朝中措·雕车南陌碾香尘》故人西辞黄鹤楼,烟花三月下扬州。——李白《送孟浩然之广陵》

  • 指甲油怎么做(怎么做指甲油)

    以下内容希望对你有帮助!下面介绍具体制作方法,首先准备材料:胶水、丙烯颜料、小盒子、小毛笔。胶水倒好后,倒入适量的丙烯颜料。胶水和丙烯颜料倒好后,用小毛笔搅拌均匀。把制作好的指甲油涂抹到指甲上。等指甲油变干后,不需要的时候可以随时撕掉。

  • 黄瓜盐水能洗吗(千万别用食盐洗黄瓜了)

    而又经历了1个月漫长的生长,最近每天终于可以摘三五条黄瓜给家人吃了。第一种清洗黄瓜的妙招:小苏打、温水首先将黄瓜放入到盆中,然后放适量的30度温水到盆中,接着将小苏打盐放入到盆中搅拌均匀,将黄瓜浸泡10分钟后,用凉白开将黄瓜清洗干净即可备用。小苏打食盐水清洗黄瓜的物理原理:因为大部分的农药和虫卵都是中性或者弱酸性,而这些物质遇到强碱性物质,会快速的发生中和反应,从而将黄瓜表面的农药和虫卵快速的去除。

  • 张无忌学会九阳神功和乾坤大挪移(张无忌有完整的九阳神功)

    呼声比较高的是那《倚天屠龙记》中的张无忌,甚至金庸自己在接受采访时也说张无忌最强,所以张无忌“最强主角”的头衔是可以拿稳了。不过张三丰在奇遇上是不及张无忌的,比如二人同样修习九阳神功,得到的版本就有区别。也就是说在金庸武侠体系中,单纯的继承武林前辈的武功,始终是难以抵达一流之境的,尽管张无忌的确很强,但他却没有自创神功之举。

  • 蜈蚣爬过的地方有毒吗(蜈蚣爬过的地方有没有毒)

    跟着小编一起来看一看吧!蜈蚣爬过的地方有毒吗蜈蚣爬过的地方有毒吗:蜈蚣爬过的地方,一般都没有明显的毒害作用,但如果蜈蚣叮咬人体的皮肤部位,有可能出现蜈蚣体内的毒素反应,注入叮咬部位的皮肤,引起皮肤炎症反应及其他的不良反应。另外蜈蚣爬过的地方在使用盘子、碗筷前要冲洗,建议你把水龙头用水冲洗了就没有毒,夏天要注意安全卫生,避免物品被污染。

  • 冷冻的熟包子要蒸多久(蒸熟冻包子的时间)

    跟着小编一起来看一看吧!冷冻的熟包子要蒸多久蒸冷冻的熟包子一般都只是需要将它蒸热,不像蒸生包子一样需要花费很多的时间将它的内陷也蒸熟,因此我们只需要让冷冻的熟包子下锅蒸五到十五分钟左右就可以了。除此之外,我们在蒸包子的时候还需要注意让包子之间都保持一定的间隙,因为包子蒸熟之后会有略微的膨胀,若是让它们紧贴在一起的话蒸出来的包子就会粘在一起。

  • 姜汤可以放白糖吗(姜汤能不能放白糖)

    以下内容大家不妨参考一二希望能帮到您!姜汤有改善寒性体质的功能,增强抵抗力免疫力,是天然的内热缘,有助于回复体力,是比较好的驱寒食物,民间素有“冬吃萝卜,夏吃姜”的说法,但是单一的姜汤口味辛辣不好下咽,人们通常会加一些糖来改善姜汤的口感。而姜汤属性热,而白糖性寒,两者混合会降低姜汤的药性。尤其是治疗风寒感冒,姜汤中加白糖后可能加重风寒病情,建议最好用红糖,两者混合可增强功效。

  • 经年无喜亦无悲(无味无谓也无畏)

    无味无谓也无畏一个人照顾好自己,足够成熟了再去碰触感情钱那么靠谱的东西,都有假的,何况人说的话呢如果能带给你温暖的人还没来,那就先做个给别人带来温暖的人吧爱忍着就不伤心了饿忍着就瘦了​​​​成长就是这样,不断遇见,。

  • 怎么判断炸鸡油温(判断油温的方法)

    怎么判断炸鸡油温?怎么判断炸鸡油温把面糊滴入油锅,面糊沉到底部再慢慢浮上来就是低温;若没有沉到底,在一半处就浮上来了则是中温;而若面糊立刻在油锅表面散开就是高温了。油温6成热时候下入鸡块,炸到鸡块金黄色时就可以捞出。