数学建模十类经典算法(7)
14、索引:>> r=
r =
1 2 3
>> R=r(,:)%其中R的行通过索引了四次,因此R有四行
R =
1 2 3
1 2 3
1 2 3
1 2 3
indexes to subscriptàind2sub 对应的还有sub2ind
index指数,subscrip下标、脚注i2s是由序数得出坐标,s2i是由坐标得出序数,这两个函数只需要知道矩阵的大小(更确切的是维数,即多少行、多少列),也就是矩阵的size(A),而不需要知道矩阵A的本身。
15、分清逻辑数组和数字数组的区别(可以用class函数鉴别)
>> B=
B =
5 4
2 -3
这里的B即为数字数组,且使用class进行检验得到
>> class(B)
ans =
double
>> x=abs(B)>3
x =
1 1
0 0
这里的x即为逻辑数组,且使用class函数进行检验得到
>> class(x)
ans =
logical% logical也是一个函数,可以强制将数字数组转化为逻辑数组;这个可以这样理解,用数字数组指定数组下标就可以提取出具有指定数字索引的元素,另一方面,用逻辑表达式和函数logical返回的逻辑数组指定数组下标,就提取出值为逻辑真1的元素。
>> B(logical())
ans =
5
4
使用logical函数可以根据数字数组转化为逻辑数组,并对已有数组进行索引,将逻辑值为真的元素输出;
B(x)
ans =
5
4
从这个例子中我们可以看到,数字数组和逻辑数组用肉眼是无法分辨的,但是计算机却清楚的知道哪些是逻辑数组哪些是数字数组,数字数组必须转化为逻辑数组才能够对相对应数组进行索引,而逻辑数组可以直接对相对应数组进行索引;
逻辑数组必须与相对应数组有相同的维数,如果逻辑数组x的维数小于数字数组B,则逻辑数组x中缺少的那一部分会被假设为false,如果逻辑数组x的维数大于数字数组B,则逻辑数组x中多余的那一部分必须设置为false。(废话真多,其实就是逻辑数组x与数字数组B的维数不同时,就按照他们相交的部分来进行逻辑判断,决定是否输出,其他的均不输出)
页:
[1]