Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中从5x5矩阵中减去单列矩阵_Matlab_Matrix_Subtraction - Fatal编程技术网

在matlab中从5x5矩阵中减去单列矩阵

在matlab中从5x5矩阵中减去单列矩阵,matlab,matrix,subtraction,Matlab,Matrix,Subtraction,假设我有一个列矩阵a,它是5x1,和一个5x5矩阵B。我想从B中的每一列中减去a [b1,1 - a1 b1,2 - a1 b1,3 - a1 b1,4 - a1 b1,5 - a1] [b2,1 - a2 ...................................................] [b3,1 - a3 ............ [b4,1 - a4 ............ [b5,1 - a5 ..... etc 是的,这是一个非常糟

假设我有一个列矩阵a,它是5x1,和一个5x5矩阵B。我想从B中的每一列中减去a

[b1,1 - a1   b1,2 - a1    b1,3 - a1     b1,4 - a1    b1,5 - a1]
[b2,1 - a2 ...................................................]
[b3,1 - a3 ............ 
[b4,1 - a4 ............
[b5,1 - a5 ..... etc

是的,这是一个非常糟糕的描述,但我希望它能让人明白这一点。我知道在八度音阶中,如果你说B-A,它会自动这样做。但在matlab中它不会。

创建一个矩阵,其中有5个
A
的副本作为其列,然后从
B
中减去它:

C = B - repmat(a, 1, 5)

创建一个矩阵,其中包含5个
a
副本作为其列,然后将其从
B
中减去:

C = B - repmat(a, 1, 5)

以下是一些选项:

只需重复以下列,将
A
转换为5x5矩阵:

B-repmat(A,1,size(B,2))
以及强制性的
bsxfun
方法:

bsxfun(@minus,B,A)

以下是一些选项:

只需重复以下列,将
A
转换为5x5矩阵:

B-repmat(A,1,size(B,2))
以及强制性的
bsxfun
方法:

bsxfun(@minus,B,A)

我不会说
bsxfun
是强制性的,因为它比
repmat
好。但当然,“更好”是一个相对的术语。@TroyHaskin有时似乎几乎所有的Matlab问题都可以用
bsxfun
来回答,所以有时感觉几乎是强制性的!明白了。当然,当试图对某些内容进行矢量化时,答案几乎总是
bsxfun
@David同意最后一条评论!!;)我不会说
bsxfun
是强制性的,因为它比
repmat
好。但当然,“更好”是一个相对的术语。@TroyHaskin有时似乎几乎所有的Matlab问题都可以用
bsxfun
来回答,所以有时感觉几乎是强制性的!明白了。当然,当试图对某些内容进行矢量化时,答案几乎总是
bsxfun
@David同意最后一条评论!!;)