Embiggen

Add (or multiply, divide, etc) a matrix A to a vector b with the simple syntax A + Embiggen(b)
ダウンロード: 436
更新 2010/5/13

ライセンスの表示

Embiggen is a class that makes Matrix-vector operations easier by virtually matching the size of a vector b to the size of amatrix A. This allows for such code as:

C = A + Embiggen(b)

Here A is a matrix (for example of size 100x50)
b is a vector (for example of size 100x1)

And the equation is understood as (in index notation)
C_ij = A_ij + b_j

Which is more readable than the alternatives:

C = A + b*ones(1,size(A,2));
C = A + repmat(b,1,size(A,2));
C = bsxfun(@plus,A,b);

Under the hood the "big matrix B" is never actually created, as bsxfun is used; however Embiggen avoids the ackward reverse polish notation style of bsxfun .

A neat example:

%Center and scale columns of a matrix
A = randn(50,60);
A = A - Embiggen(mean(A));
A = A ./ Embiggen(std(A));

mean(A) %vector of zeros
std(A) %vector of ones

The following operators are implemented:

A + Embiggen(b)
A - Embiggen(b)
A .* Embiggen(b)
A ./ Embiggen(b)
A .\ Embiggen(b)

And the logical operations:

A == Embiggen(b)
A ~= Embiggen(b)
A < Embiggen(b)
A > Embiggen(b)
A <= Embiggen(b)
A >= Embiggen(b)
A & Embiggen(b)
A | Embiggen(b)
xor(A, Embiggen(b))

As well as the functions:
max(A,Embiggen(b))
min(A,Embiggen(b))
rem(A,Embiggen(b))
mod(A,Embiggen(b))
atan2(A,Embiggen(b))
hypot(A,Embiggen(b))

Embiggen also works between any two multidimensional arrays A and B as long as each dimension of A and B is equal to each other, or equal to one.

Embiggen does not redefine any core Matlab classes, unlike other solutions (for example bsxops).

引用

Patrick Mineault (2024). Embiggen (https://www.mathworks.com/matlabcentral/fileexchange/27603-embiggen), MATLAB Central File Exchange. 取得済み .

MATLAB リリースの互換性
作成: R2008a
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersLogical についてさらに検索
謝辞

ヒントを得たファイル: bsxops

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
バージョン 公開済み リリース ノート
1.0.0.0