Matlab 矩阵索引
来源:互联网 发布:压缩包for mac 编辑:程序博客网 时间:2024/04/30 16:46
获取矩阵元素 A(row, column) 线性索引 matlab存储矩阵并非以它的形状的形式,而是一个线性元素列,将每一列连接起来。 比如 A = [2 6 9; 4 2 8; 3 5 1] A = 2 6 9 4 2 8 3 5 1 存为2, 4, 3, 6, 2, 5, 9, 8, 1 所以A(3,2)也为A(6)。 尺寸为[d1 d2]的矩阵A,A(i,j)的线性序号为 (j-1) * d1 + i 与索引形式有关的函数 将行列索引和线性索引转化的函数。sub2ind/ind2sub A = [2 6 9; 4 2 8; 3 5 1]; linearindex = sub2ind(size(A), 3, 2) linearindex = 6 [row col] = ind2sub(size(A), 6) row = 3 col = 2 获取多个元素 冒号操作 A = magic(4); 需要:A(1,4) + A(2,4) + A(3,4) + A(4,4) 则:sum(A(1:4, 4)) A(1:4, 4) 提取1到4行,第4列的元素。 非连续元素 从矩阵中获取非连续元素的值。 使用冒号并指定步长。m:3:n,表示从第m个到第n个元素,每3个取一个。 B = A; B(1:3:16) = -10 B = -10 2 3 -10 5 11 -10 8 9 -10 6 12 -10 14 15 -10 使用自定索引序列 A = 5:5:50 A = 5 10 15 20 25 30 35 40 45 50 B = [1 3 6 7 10]; A(B) ans = 5 15 30 35 50 end关键字 在矩阵大小不确定时很有用。 B(1:3:end) = -10 选择某行或者某列所有元素 第二列:A(:, 2) 第二行:A(2,:) 所有:A(:) 以列向量的形式。 使用矩阵的逻辑索引 在选出A矩阵中与B矩阵内非零值位置相同的元素,为一列向量。所以不是根据值来的,而是根据位置来的。 B是一个矩阵由逻辑0和1组成。即B中为非零的位置,就是要选出的元素位置。 A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 B = logical([0 1 0; 1 0 1; 0 0 1]); B = 0 1 0 1 0 1 0 0 1 A(B) ans = 4 2 6 9 find函数返回B中非零元素的索引, find(B) ans = 2 4 8 9 所以也就是选出A中序号为2 4 8 9的元素,组成列向量。 例1 rand('twister', 5489); B = A > 0.5; A(B) = 0 A = 0 0.0975 0.1576 0.1419 0 0 0.2785 0 0.4218 0.0357 0.1270 0 0 0 0 0 0 0.4854 0 0 0 0 0 0 0 例2 A = magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 B = isprime(A) %素数 B = 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 A(~B) = 0; % 逻辑索引 A A = 0 2 3 13 5 11 0 0 0 7 0 0 0 0 0 0 find(B) ans = 2 5 6 7 9 13 *使用较小的矩阵作为索引矩阵 大多数情况下,逻辑索引矩阵与对象矩阵大小相同,但索引矩阵也可以小于对象矩阵(不能大于)。 A = [1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 B = logical([0 1 0; 1 0 1]) B = 0 1 0 1 0 1 isequal(numel(A), numel(B)) ans = 0 A(B) ans = 4 7 8 MATLAB将索引矩阵中缺少的部分视为0。 以上相当于: C = logical([B(:);0;0;0]); isequal(numel(A), numel(C)) ans = 1 A(C) ans = 4 7 8 单冒号索引 n = [1 2 3; 4 5 6]; c = {1 2; 3 4}; s = cell2struct(c, {'a', 'b'}, 1); s(:,2)=s(:,1); %cell2struct,将c编入结构中,成员变量为a,b,变量值为c,1为个体排列维数。 对每个使用单冒号索引: n(:) c{:} s(:).a ans = ans = ans = 1 1 1 4 ans = ans = 2 3 2 5 ans = ans = 3 2 1 6 ans = ans = 4 2 按索引指定值 当将一个矩阵的值指定给另一个矩阵是,你可以使用任意一种索引方法。 A(J,K,...) = B(M,N,...) JKMN必须是标量,向量或者矩阵。 A中指定元素个数应该与B中指定元素个数相等。
- Matlab 矩阵索引
- MATLAB矩阵索引 2
- MATLAB中的矩阵索引
- Matlab-矩阵的索引
- matlab遇到问题-矩阵索引值超维问题
- matlab根据行列索引矩阵寻找元素
- MATLAB中矩阵的逻辑索引方法
- Matlab中对矩阵使用矩阵尺寸的索引
- 问题记录:matlab三维重建“索引超出矩阵维度。”
- MATLAB学习笔记之-----数组、矩阵、向量索引和逻辑索引
- MATLAB矩阵
- Matlab 矩阵
- matlab矩阵
- matlab矩阵
- matlab 矩阵
- MATLAB中通过矩阵索引值求元素下标以及转为C语言数组下标
- matlab中二值图像、灰度图像、彩色图像、索引图像都是几维矩阵,区别是什么?
- MATLAB与R函数对照(3)——输入/创建/索引矩阵函数
- POJ_1659 Frogs' Neighborhood
- POJ_2553 求出度为0的强连通分支
- POJ_2186 Popular Cows
- 本土IC首次打入Apple供应链
- Android FrameLayout OnGestureListener手势操作
- Matlab 矩阵索引
- 黛玉传与红楼梦
- 如何在快速启动栏上添加东西?
- MATLAB矩阵索引 2
- Matlab 重塑和扩展矩阵
- 细说 BitmapData
- Out of memory问题总结
- 大音希声
- fedora 8安装kde