matlab 实用程序片段

  • 记录一次 shuffle(或者叫 permutation):

    n = 10;
    randorder = randperm(n);

batch(分块机制)

totnum = 1000;
batchsize = 100;
numbatch = totnum/batchsize;
numdim = 12;
testbatchdata = zeros(batchsize, numdim, numbatch);
            % 三维矩阵保存全部的 batch 信息
size(testbatchdata)
            % 100, 12, 10

按块访问:

for i = 1:numbatch,
    data(1+(i-1)*batchsize:i*batchsize, :)
end

双层循环

for epoch = 1:maxepoches,
    ...
    for batch = 1:numbatches,
        ... 
    end
end

统计一行中 0 的个数

>> A = randi([0, 1], 5, 10);
>> sum(A == 0, 2)

随机地选择矩阵的某些行或者某些列

% 随机地选择某些行
>> A(randi(size(A, 1), k, 1), :)

% 随机地选择某些列
>> A(:, randi(size(A, 2), 1, k))

perfect square 的判断

floor(sqrt(n)) ^2 == n

你可能感兴趣的:(matlab 实用程序片段)