使用MATLAB实现的小算法练习1
2021/9/10 17:06:53
本文主要是介绍使用MATLAB实现的小算法练习1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目1:
1.给定N和A,N是一个整数,A是一个向量,例如N=3,A=[4 5 6 7],将A中的每一个元素重复N次,然后形成一个向量:
示例:
B=
4 4 4 5 5 5 6 6 6 7 7 7
代码:
N=3;A=[4 5 6 7] B=A(ones(1,N),:); %ones(1,N):生成一行N列的全为1 的向量 B(:)' % A([1 1],:)是将A的行向量重复两遍
结果:
题目2:
2.假设x是一个向量,例如x = [4 4 4 5 6 6 7 7 8 8 8 8],现在想要得到如下向量
l = [2 3 1 2 4]; %每个元素的重复的个数
v = [4 5 6 7 8]; %重复元素的值
代码:
x = [4 4 4 5 6 6 7 7 8 8 8 8] i = [find(x(1:end-1) ~= x(2:end)) length(x)] l = diff([0 i]) %求差分:后减前 v = x(i) %解释: x(1:end-1) %取x中的去掉最后一个的所有 思路:差分之后,等于0的说明相同,不等于0说明不同。
结果:
题目3
例如:
l = [2 3 1 2 4];
v = [4 5 6 7 8];
求x
代码:
l = [2 3 1 2 4]; v = [4 5 6 7 8]; i= cumsum([1 l]) %累计求和 j = zeros(1,i(end)-1) j(i(1:end-1)) = 1 x = v(cumsum(j))
结果:
题目4
求建立以下table数组
table N date cross oddnum evenum
行编号
2017年每天的日期,datetime格式
日期为单,“单号通行”,日期为双,“双号同行”。周末“单双同行”
当前日期单号车一共通行多少天
当前日期双号车一共通行多少天
%代码:
clc; clear; NDays = yeardays(2021); N = [1:NDays]'; %NDays = yeardays(2021) date = datetime(2021,1,1)+N-1;%生成这一年的日期数组 cross = repmat('单号通行',NDays,1); a = logical(mod(date.Day,2)); %日期是否为单,mod()求余 cross(~a,:) = repmat('双号通行',sum(~a),1);%~a取反 tf = isweekend(date); cross(tf,:) = repmat('单双通行',sum(tf),1); idoddnum = all(cross == '单号通行',2 )|all(cross == '单双通行',2); idevenum = all(cross == '双号通行',2 )|all(cross == '单双通行',2); Noddnum = cumsum(idoddnum); Nevenum = cumsum(idevenum); CrossDate = table(N,date,cross,Noddnum,Nevenum)
结果:
这篇关于使用MATLAB实现的小算法练习1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求