matlab 小技巧,MATLAB小技巧

数组添加新元素, 类似python的append

A = ones(1, 3);

B = 3;

A = [A, B]; % 注意 A, B之间的维度关系

将一个数组的元素打乱

a = a(randperm(length(a)));

MATLAB查找数组最小的n个数的原下标

A = rand(1, 10); % 示例A

[vle, idx] = sort(A); % sort和max一样, 返回[值, 索引].

n = 4;

res = idx(1:n);

保留n位小数

1.结尾为0, 如:

roundn(12.3456, -2) % 负整数, 截于小数点后2位12.3500

roundn(12.3456, 1) % 正整数, 于小数点前1位截, 结果: 10

2.结尾无数, 如:

n = 4;

vpa(123.45, n) % 保留n位小数, 结果: 123.4

MATLAB使用不当时的一大耗时点

MATLAB之前经常给出波浪线提示”变量XX可能会随迭代次数而改变。请预分配内存以获得更高的运算速度”, 常常不以为意, 今天吃大亏了, 10个小时处理了40张图。。。

一个例子

random_points = rand(50000, 2);

%% C语言式->_->

tic

t_cell = cell(size(random_points, 1), 1);

for i = 1 : size(random_points, 1)

t_cell{i} = {random_points(i, :)};

end

toc

% 时间已过 0.156488 秒。

%% Python式

tic

t_cell = {};

for i = 1 : size(random_points, 1)

t_cell = [t_cell; random_points(i, :)];

end

toc

% 时间已过 33.253046 秒。

耗时大相径庭, 效率可见一斑。

转自:https://www.cnblogs.com/ZhengPeng7/p/7260075.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值