迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

MATLAB 遍历矩阵

作者:迹忆客 最近更新:2023/03/19 浏览次数:

本文将讨论如何使用 MATLAB 中的线性索引、arrayfun()cellfun() 函数迭代矩阵。

在 MATLAB 中使用线性索引迭代矩阵

在一个矩阵中,有两种索引;一个是行和列索引,我们必须在其中提供行号和列号才能访问矩阵中存在的元素,第二个是线性索引,其中我们可以仅使用元素的线性索引来访问元素。例如,请参考下面的代码。

m = [2 6 1; 17 19 18]
row_col_index = m(2,3)
linear_index = m(6)

输出:

m =

     2     6     1
    17    19    18


row_col_index =

    18


linear_index =

    18

在上面的代码中,我们使用两种索引访问矩阵的最后一个元素。在线性索引中,元素从第一列开始出现在矩阵中。因此,如果从第一列开始计数,则最后一个元素出现在第六个索引处。为了使用行和列索引迭代矩阵,你需要两个循环,但在线性索引的情况下,你只需要一个循环。例如,让我们使用线性索引遍历矩阵。请参考下面的代码。

m = [2 6 1; 17 19 18];
for i = 1:numel(m)
    disp(m(i))
end

输出:

     2

    17

     6

    19

     1

    18

在上面,我们使用 numel() 函数来获取给定矩阵中存在的元素总数。并且使用循环和线性索引,我们在命令窗口上一个一个地显示每个元素。请注意元素在命令窗口上的显示顺序,这就是线性索引的顺序。

在 MATLAB 中使用 arrayfun() 函数遍历矩阵

如果你有一个函数并希望将其应用于数组或矩阵的每个元素,一种方法是如上所述迭代每个元素并将该函数应用于每个元素,但还有另一种简单的方法可以使用 arrayfun() 将给定的函数应用于数组或矩阵的每个元素。请参考下面的代码。

output = arrayfun(myFunction , array);

在上面的代码中,arrayfun() 将存储在 myFunction 中的函数一一应用于数组的每个元素,并将结果存储在变量 output 中。例如,让我们将定义的函数应用于矩阵的每个元素。请参考下面的代码。

myMatrix = [0 90; 180 270]
myFunction = @(x) cos(x);
output = arrayfun(myFunction , myMatrix)

输出:

myMatrix =

     0    90
   180   270


output =

    1.0000   -0.4481
   -0.5985    0.9844

从输出中可以看出,函数 cos(x) 应用于矩阵的每个元素,结果存储在变量 output 中。查看此链接以获取有关 arrayfun() 的更多信息。

在 MATLAB 中使用 cellfun() 函数遍历矩阵

如果你有一个函数并希望将其应用于给定单元格的每个元素,一种方法是如上所述遍历每个元素并将该函数应用于每个元素,但还有另一种简单的方法,你可以使用 cellfun() 将给定的函数应用于单元格的每个元素。请参考下面的代码。

output = cellfun(myFunction , myCell);

在上面的代码中,cellfun() 将存储在 myFunction 中的函数一一应用于单元格的每个元素,并将结果存储在变量 output 中。例如,让我们将定义的函数应用于单元格的每个元素。请参考下面的代码。

myCell = {0,90,180,270}
myFunction = @(x) sin(x);
output = cellfun(myFunction , myCell)

输出:

myCell =

  1×4 cell array

    {[0]}    {[90]}    {[180]}    {[270]}


output =

         0    0.8940   -0.8012   -0.1760

从输出中可以看出,函数 sin(x) 应用于单元格的每个元素,结果存储在变量 output 中。查看此链接以获取有关 cellfun() 的更多信息。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 MATLAB 中注释多行

发布时间:2023/04/23 浏览次数:111 分类:MATLAB

可以使用注释块方法或 MATLAB 编辑器在 MATLAB 中注释多行。

MATLAB 最大索引

发布时间:2023/04/23 浏览次数:192 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 max() 函数从数组及其索引中查找最大值。

MATLAB 索引超出矩阵尺寸

发布时间:2023/04/23 浏览次数:103 分类:MATLAB

要解决索引超出矩阵索引的问题,请检查你要获取或替换数据的索引。

MATLAB 检查变量类型

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。

MATLAB vs Octave

发布时间:2023/04/23 浏览次数:74 分类:MATLAB

我们可以说 Octave 是 MATLAB 的免费版本。

MATLAB MAT 文件

发布时间:2023/04/23 浏览次数:89 分类:MATLAB

可以使用 MAT 文件在 MATLAB 中存储和加载格式化的数据。

MATLAB asv 文件

发布时间:2023/04/23 浏览次数:180 分类:MATLAB

.asv 文件是 MATLAB 生成的自动保存文件,因此在计算机崩溃时你不会丢失数据。

MATLAB 三元运算符

发布时间:2023/04/23 浏览次数:130 分类:MATLAB

MATLAB 中没有三元运算符,因此你必须使用标准格式。

MATLAB & vs &&

发布时间:2023/04/23 浏览次数:134 分类:MATLAB

在 MATLAB 中,&是逻辑与运算符,&&也是表现出短路行为的逻辑运算符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便