相关疑难解决方法(0)

如何从矩阵的每一行中减去一个向量?

可能重复:
如何将矩阵的每一行除以固定行?

我正在寻找一种优雅的方法来从矩阵的每一行中减去相同的向量.这是一种非常优雅的方式.

a = [1 2 3];
b = rand(7,3);
c(:,1) = b(:,1) - a(1);
c(:,2) = b(:,2) - a(2);
c(:,3) = b(:,3) - a(3);
Run Code Online (Sandbox Code Playgroud)

而且,优雅的方式不能比这种方法慢.

我试过了

c = b-repmat(a,size(b,1),1); 
Run Code Online (Sandbox Code Playgroud)

而且似乎更慢.

编辑:获胜者是这种方法.

c(:,1) = b(:,1) - a(1);
c(:,2) = b(:,2) - a(2);
c(:,3) = b(:,3) - a(3);
Run Code Online (Sandbox Code Playgroud)

编辑:更多方法和tic toc结果:

n = 1e6;
m = 3;
iter = 100;
a = rand(1,m);
b = rand(n,m);

tic
c = zeros(size(b));
for i = 1:iter
    c(:,1) = b(:,1) - a(1);
    c(:,2) = …
Run Code Online (Sandbox Code Playgroud)

matlab vector matrix subtraction

26
推荐指数
2
解决办法
6万
查看次数

如何将矩阵的每一行除以固定行?

假设我有一个矩阵,如:

100 200 300 400 500 600
  1   2   3   4   5   6
 10  20  30  40  50  60
...
Run Code Online (Sandbox Code Playgroud)

我希望将每一行划分为第二行(每个元素由相应的元素划分),所以我会得到:

100 100 100 100 100 100
  1   1   1   1   1   1
 10  10  10  10  10  10
...
Run Code Online (Sandbox Code Playgroud)

我可以这样做(没有编写显式循环)吗?

matlab loops matrix

24
推荐指数
3
解决办法
3万
查看次数

如何在MATLAB中按列总和划分矩阵元素?

有没有一种简单的方法可以将每个矩阵元素除以列总和?例如:

input:

1  4

4  10

output:

1/5  4/14

4/5  10/14
Run Code Online (Sandbox Code Playgroud)

matlab matrix column-sum

20
推荐指数
1
解决办法
2万
查看次数

标签 统计

matlab ×3

matrix ×3

column-sum ×1

loops ×1

subtraction ×1

vector ×1