matlab 实用 api

bsxfun

Apply element-by-element(逐元素) binary operation(二元操作,体现在第一个参数) to two arrays with singleton expansion enabled.

比如我们要 0 均值化一副图像:

patches = bsxfun(@minus, patches, mean(patches));

在 matlab 中是没有 broadcasting 的概念的:

>>> A = magic(3)
ans =
     8     1     6
     3     5     7
     4     9     2
>>> A - mean(A)
错误使用  - 
矩阵维度必须一致。

>> A = A - repmat(mean(A), size(A, 1), 1)
A =
     3    -4     1
    -2     0     2
    -1     4    -3
>>> mean(A)
ans =
     0     0     0

exist

Check existence of variable(变量), function(函数), folder(文件夹), or class(类)。

testresults = magic(5);
exist testresults var
                    % exist('testresults', 'var') ⇒ 可以用来赋值,前者不可以
ans = 
1
A = exist('plot')
A =
     5
        % This indicates that plot is a built-in MATLAB function.

cat:多个二维矩阵拼接为一个三维矩阵

cat:在指定维度上进行拼接

cat:Concatenate

C = cat(dim, A, B)
C = cat(dim, A1, A2, A3, A4, ...)
                % 第一个参数为指定的维度,
                % 后续参数为可变参数
>> A = [1, 2; 3, 4], B = [5, 6; 7, 8]
A =
     1     2
     3     4
B =
     5     6
     7     8

>> cat(1, A, B)
ans =
     1     2
     3     4
     5     6
     7     8
                 % 等价于 [A; B]
>> cat(2, A, B)
ans =
     1     2     5     6
     3     4     7     8
                 % 等价于 [A, B]

>> cat(3, A, B)
ans(:,:,1) =
     1     2
     3     4
ans(:,:,2) =
     5     6
     7     8

你可能感兴趣的:(matlab 实用 api)