matlab:动态数组、队列、堆栈、容器
matlab:停止、报错:控制程序的走向
matlab:获取数组的大小
在MATLAB的编程环境下,和数学上的矩阵是一个意义(坐标索引从 1 开始)。我们多使用矩阵和向量这两个数学意义上的数据结构。
所以以下把多维(除一维)数组称为矩阵,一维数组称为数组或向量。对于那种每一维的长度不同的多维数组,在matlab和数学研究中,我们一会给它补0,变成矩阵。
1、1*n的矩阵是一维数组(向量)
2、 m*n的矩阵是m(m>1)维数组
1 |
|
1 size()
1.1 功能
主要用来获得矩阵的各个维数的大小,或者指定维数的大小。
1.2 语法
size()
:获取矩阵的行数和列数
1 | d = size(X) |
s = size(A)
,当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数r
,第二个元素是矩阵的列数c
。即s = [r, c]
[r, c] = size(A)
,当有两个输出参数时,size函数将矩阵的行数r
返回到第一个输出变量,将矩阵的列数c
返回到第二个输出变量。- 如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回矩阵的行数或列数。
其中:
r = size(A,1)
:返回的时数组A的行数
c = size(A,2)
:返回的时数组A的列数
2 length()
2.1 功能
用来获得数组长度,即一维数组的长度或者多维数组中最大的维数行数或列数中的较大值
2.2 语法
1 | numberOfElements = length(array) |
length()
和size()
使用区别:一般情况下,
获取一维数组的长度用length()
函数;
获取多维数组的维数大小用size()
。
3 numel()
3.1 功能
计算一个数组所有的元素数或指定下标的元素总数。
3.2 语法
1 | n = numel(A) |
4 ndims()
4.1 功能
获取矩阵的维数
一般来说,多维数组我们用数学意义上的矩阵来理解。多维矩阵,从数学意义上来理解,即矩阵的元素不是数字。
4.2 语法
1 | n = ndims(A) |
4.3 例子
1 | n1 = ndims( [1 2 3;4 5 6] ); % n1 = 2 二维矩阵 |
Matlab:数组
Matlab:条件与循环
一、语法知识
1、循环控制语句:
1)for~end:用于要求重复多次执行for与end之间的程序语句。允许嵌套。其一般格式为
1 | for 变量 = 起始值 :增量 :终点 |
2)while~end:与c++类似,while也不规定循环次数,其终止时刻由while后面的条件表达式决定,若条件成立,则重复执行while与end之间的程序语句,否则结束循环。其一般格式为
1 | while 条件表达式 |
1)if~end:其一般格式为
1 | if 逻辑表达式 |
1 | if 逻辑表达式1 |
1 | 【注意:在多分支条件选择语句中,if和elseif是互相独立且互相排斥的条件选择语句,else后的语句执行的条件是先前所有的条件语句均不成立】 |
3)switch~end:开关语句是一种多分支条件选择语句,他执行特定选择语句,当且仅当变量或表达式的值相符。其一般格式为
1 | switch 表达式 |
Matlab:for循环
简单for循环
for循环用来循环处理数据。
例:输出1~100的和
1 | >> clear |
解释:i从1到100,每次增加一个,该共循环100次
注意:分号的位置;不能使用“+=”符号;每写一层循环,必须以end结尾
带有步长的for循环
例:输出1到10之间的奇数和
1 |
|
解释:i = 1:2:10中间的2表示步长,表示从1到10,每次增加2,即1,3,5,7,9五个数之和;步长也可以为负数
对向量和矩阵的遍历
- 对向量的遍历
1 | >> clear |
解释:rand函数用于随机生成0~1之间的数,rand(1,4)生成1*4的列向量。
- 对矩阵的遍历
1 | >> A = magic(4); |
解释:magic(n)函数用于生成任意一行或一列或主副对角线之和相等的方阵,对矩阵的循环遍历是依次取出矩阵中的每一列元素
break和continue的使用
break用于终止离它最近的一层for循环;
continue用于跳过离它最近的一层for循环,接着执行下一次循环
1 | >> x = 1; |
1 | >> sum = 0; |
多层for循环
for循环可以按照需要进行嵌套。
1 | >> for i = 1:2:6 |
Matlab:函数
Matlab:函数返回多个值
Matlab:函数返回多个值
在 MATLAB 中,函数可以返回多个值。要返回多个值,可以使用中括号将它们括起来,并用逗号分隔。以下是一个简单的示例:
1 | function [output1, output2] = myFunction(input1, input2) |
在这个例子中,函数 myFunction
接受两个输入参数
input1
和 input2
,并返回两个输出值
output1
和 output2
。在函数的结尾处,使用
output1
和 output2
变量来存储要返回的值。
要调用这个函数并获取返回的值,可以使用以下语法:
1 | [output1, output2] = myFunction(input1, input2); |
这将调用函数 myFunction
并将输入参数 input1
和 input2
传递给它。函数将计算输出值 output1
和 output2
,并将它们分别赋值给变量 output1
和
output2
。
相关问题
在 Matlab 中,可以通过在函数定义行中使用多个输入参数来实现函数接受多个输入。以下是一个简单的示例:
1 | function output = myFunc(input1, input2, input3) |
Matlab:在函数里使用“全局变量”
Matlab:在函数里使用“全局变量”
函数里的变量自在函数内有效, 那么如何在函数内调用外部的变量呢?
- 全局变量 global
global可以定义全局变量, 但要注意先定义, 再赋值. 否则会有警告:
Warning: The value of local variables may have been changed to match the globals. Future versions of MATLAB will require that you declare a variable to be global before you use that variable.
并且需要在你写的函数里面声明使用全局变量。
1 | global x |
- 使用子函数
子函数默认可以调用其母函数中所有的变量
1 | function main |
执行 main, 输出5. 子函数共享父函数的变量