问题标签 [bsxfun]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
107 浏览

matlab - 在矩阵的行上调用通用函数

我想为 Matlab 中的通用核函数有效地计算核矩阵。这意味着我需要k(x,y)为每一行xX 每一行y计算Y. 这是一些计算我想要的matlab代码,但它相当慢,

是否有任何其他方法可以解决这个问题,例如某些bsxfun变体在从Xand获取的每一行上调用一个函数Y

0 投票
2 回答
1923 浏览

matlab - matlab代码中的矩阵维数错误

我正在 matlab 中尝试特定代码但收到错误
Error using ==> plus
Matrix dimensions must agree.

在这条线上

在哪里k=w*alpha;[LL,LH,HL,HH] = dwt2(X,'db1','d');X=imread('cameraman.tif'); X=im2double(X);
帮助我应该如何解决这个错误?

编辑:我浏览了这里的一篇文章并尝试使用 bsxfun

但这并不能解决问题

编辑 2:代码是关于使用 dwt 算法的数字图像水印,我在浏览互联网时发现了这个代码,但它给出了我上面讨论的错误。
我已经发布了代码的前半部分,直到出现错误。
我希望我的回复对解决错误有用

0 投票
1 回答
1113 浏览

matlab - 下标索引必须是实数正整数或逻辑数

我编写了一个函数来对具有三行的矩阵的每一行求和。

然后使用具有一行和三列的矩阵来划分先前的结果。

但我不断收到这个错误。我知道下标不应该是小数或负数。但我还是找不到罪魁祸首。请帮忙,谢谢。

例如:

一个=

乙= 7 8 9

然后我想得到

更新:

罪魁祸首: 我在前面的命令行中使用 mean_access_time 作为变量。

0 投票
2 回答
670 浏览

matlab - MATLAB - bsxfun 用于负值

我正在使用命令规范化数据集

我在两个不同的数据集上尝试了这个函数。一个也有负值。其他人没有。没有负值的数据集在 0 和 1 之间完美归一化。并且具有负值的那个没有正确规范化。这可以解决吗?还有另一种方法可以用负值规范化数据集吗?

0 投票
1 回答
1575 浏览

matlab - Matlab - 矩阵除以零 - 零和 NaN

我正在尝试将精度矩阵 sigmaT 转换为协方差矩阵。我尝试了两种方法:

sigmaT 中的某些元素为零,因此会发生除以零。第一种基于循环的解决方案将发生被 0 除的元素保留为 0,第二种方法将元素设置为 NaN。

我的问题是:为什么它们的行为不同,我怎样才能将第二种单行方法更改为基于循环的方法?我相信后一种解决方案在大型矩阵上应该明显更快。

0 投票
1 回答
241 浏览

matlab - 使用 bsxfun 计算匹配值两个矩阵

c=bsxfun(@eq,b,a)用来比较两个矩阵的值。但我发现很难计算不匹配的值。例如,我使用这段代码

和结果

我想用第二个匹配保存值第一个匹配矩阵。例如

你有什么建议吗?谢谢..

0 投票
2 回答
5155 浏览

matlab - 避免 sub2ind 和 ind2sub

我需要访问 3D 中某个点周围的多个索引。例如,对于点 ( x1, y1, z1),我需要获取其 3x3x3 邻域的所有索引,使得 ( x1, y1, z1) 居中。为大小 3 的附近,我做

在这里,我通过添加从 ( , , ) 到 3x3x3 框中任意点的距离来x1y1、、居中。z1x1y1z1

x1这给了我 ( , y1, z1) 3x3x3 邻域的坐标。然后我需要将它们转换为线性索引,以便我可以访问它们:

这是我所做的代价高昂的事情。

我的问题是,如何避免sub2ind. 如果inx是 ( x1, y1, z1) 的线性索引,

如何通过加减或任何其他简单操作找到线性索引的 3x3x3 邻域inx

0 投票
2 回答
1145 浏览

matlab - 在对非常大的矩阵中的每一行执行操作时,如何避免 MATLAB 中的 for 循环?

我正在使用MATLAB。我有非常大的 稀疏矩阵,我想在这个矩阵的每一列上执行一个logical或。bsxfun有一个循环,其中是填充稀疏矩阵for的单个操作。logical在这里,我包含了一个带有一些虚假小数据的示例函数,以查看我想要做什么;

graph_temp并且com_mat更大,大约有1Mfor行和列,并且代码对循环的执行速度非常慢。关于 SO 这里还有另一个相关问题,但我还没有理解它背后的理论,看看我是否也可以将这些解决方案应用于这个问题。

我正在考虑编写一个mexc++ 函数或尝试进行某种嵌套arrayfun,以便将每个logical/bsxfun操作作为更大函数的子例程调用,以避免 for 循环瓶颈。

0 投票
2 回答
173 浏览

matlab - Matlab向量化矩阵减法使用bsxfun

我有一个数组Y=rand(1000,28);,我想找到列差异:

我可以这样做bsxfun吗?

0 投票
3 回答
280 浏览

matlab - Matlab:您对使用矩阵的小内存问题的看法

我有一个关于 MATLAB 内存消耗的小问题。

我的架构:

- Linux OpenSuse 12.3 64 位
- 16 GB 内存
- Matlab 2013a 64 位

我处理一个大小为:62 x 11969100(称为 y)的双精度矩阵

当我尝试以下操作时:

或者干脆

我收到了OUT of MEMORY 错误(在这两种情况下)。

我刚刚计算了为矩阵分配的 ram 空间:
62 x 11969100 x 8 = 5.53 GB

我哪里错了?!

非常感谢!