matlab - 如何将 f(x,y) 转换为二维矩阵(即查找表)?

标签 matlab function matrix octave lookup-tables

给定 f = @(x,y) [带有标量结果的东西],计算查找矩阵 A 的最佳方法是什么 >A(x,y) == f(x,y) 对于特定范围和域内的任何 x,y

假设一个名为 lookupTable(f,range,domain) 的函数做了我想要的。然后 lookupTable(@(x,y) x * y, 12, 12) 将生成一个矩阵,其中包含从 1*1=112 的乘法表*12=144.

或者假设我想要一个 6x6 矩阵,除第 3 行第 5 列中的 1 外全为零。我可以编写 lookupTable(@(x,y) x==3&&y==5, 6, 6)

最佳答案

我会使用 MESHGRID 的组合为 xyARRAYFUN 生成二维输入网格计算每个网格对处的标量函数 f。对于您的第一个示例,您可以这样做:

[y, x] = meshgrid(1:12, 1:12);  %# Or just [y, x] = meshgrid(1:12);
lutable = arrayfun(f, x, y);

请注意,我颠倒了 MESHGRID 的输入和输出顺序,以便 x 的值在生成的查找表的行中增加。

关于matlab - 如何将 f(x,y) 转换为二维矩阵(即查找表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065181/

相关文章:

具有重叠搜索结果的 MATLAB strrep 函数

Matlab:如何使用 for 循环在结构中创建多个字段

matlab - 为什么 matlab Bootstrap 评估 N+1 次?

c++ - 字符串大小函数不起作用

jQuery UI slider 计算

jquery - 单击时更改图像,带有图像映射

C程序奇怪的输出和错误的输出

matlab - matlab 中的岭回归

c++ - 如何进行逐元素比较并根据结果做不同的操作

haskell - 如何在 Haskell 中扩展矩阵