MATLAB知识点:for循环的七道经典例题

news2024/11/14 10:50:25

 ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自​第4章:MATLAB程序流程控制

(1)不使用sum函数,计算行向量x中所有元素的和。  

x = [5 8 9 1 4 3 7]; 
s = 0;  % 初始化最终的求和结果为0
for ii = x
    s = s + ii;
end
disp(s)

在这个示例中,for 循环遍历了向量 x 中的每个元素,将它们逐个加到变量 s 中,最终得到了所有元素的和。

思考:如果x是一个列向量,左侧的代码输出的s是什么,应该如何修改代码?

(2)计算当n等于100时,下面式子的结果:

y\left( n \right) \,\,=\,\,1+\frac{1}{2^2}+\frac{1}{3^2}+\cdots +\frac{1}{n^2}

n = 100;  % 设置n的值
y = 0;    % 初始化y的值为0
for k = 1:n
% 计算每一项并累加到y中
y = y + 1 / (k^2);  
end
disp(y)

在这个示例中,for 循环从 1 到 n 遍历每个整数   k,并计算每一项 1 / (k^2),然后将它们累加到变量 y 中。最终,y 的值将是整个表达式的结果。

思考:使用上一章的知识点,如何通过一行代码直接计算y的值?

参考答案: y = sum(1./(1:100).^2)

(3)计算当n从1一直取到100时,上一小问式子的计算结果,并将计算结果保存到一个长度为100的行向量S中(S中第i个元素表示y(i)的结果)。

S = zeros(1, 100); 
for n = 1:100
    y = 0;    % 初始化y的值为0
    for k = 1:n
        y = y + 1 / (k^2);  
    end
    S(n) = y;
end
disp(S)

这里使用了循环的嵌套,上一问的代码可用来求出任意一个具体的n对应的y。因此,这一问我们只需要使用循环让n从1遍历到100,并将每次的计算结果保存到向量S中。

请大家思考:(1)y = 0;这行代码能否放在循环的外面? (2)能否优化上面的代码,使得通过一次循环就得到S。

这两个问题留作本章最后的课后习题。

(4)计算从公元1年到公元9999年间,有多少个闰年。闰年的判读条件是年份能够被4整除,但不能被100整除,或者年份能够被400整除。

% 初始化闰年计数器
leap_year_count = 0;
% 循环遍历从公元1年到公元9999年的每一年
for year = 1:9999
    % 检查是否为闰年的条件
    if (mod(year, 4) == 0 && mod(year, 100) ~= 0) || (mod(year, 400) == 0)
        % 如果是闰年,增加计数器
        leap_year_count = leap_year_count + 1;
    end
end
disp(leap_year_count)

(5)一个三位正整数各位数字的立方和等于该数本身则称该数为水仙花数,例如:1^3 + 5^3+ 3^3 = 153,则153是水仙花数。请你找出所有的水仙花数并将其保存到向量S中。

% 初始化存储水仙花数的向量S为空
S = [];
% 循环遍历所有的三位整数
for num = 100:999
    % 拆解数字
    digit1 = floor(num / 100);     % 百位
    digit2 = floor(mod(num, 100) / 10);  % 十位
    digit3 = mod(num, 10);          % 个位
    % 检查是否为水仙花数的条件
    if num == digit1^3 + digit2^3 + digit3^3
        S = [S, num];  % 若是水仙花数,则添加到向量S中
    end
end
% 显示所有的水仙花数
disp(S)

(6)斐波那契数列的递推公式为

求F(30).

n = 30;
F = ones(1,n);   % 初始化用来保存中间计算结果的向量全为1
for k = 3:n
     F(k) = F(k-1) + F(k-2);
end
Fn = F(n)
% 832040

(7)生成一个5行8列的矩阵,矩阵中每个元素都是在区间[1, 10]上取值的随机整数。接下来请循环每一列,若发现同一列的五个元素各不相同,则保留该列;若该列中有重复的元素则删除该列。

% 生成随机整数矩阵
matrix = randi([1, 10], 5, 8);
% 输出生成的随机整数矩阵
disp(matrix)
% 初始化新矩阵,用于存储五个元素各不相同的列
new_matrix = [];
% 循环遍历每一列
for column = matrix 
    % 使用unique函数取当前列的唯一值
    unique_column = unique(column);
    % 若取完唯一值后还是5个元素,则添加到新矩阵中
    if length(unique_column) == 5
        new_matrix = [new_matrix, column];
    end
end
disp(new_matrix)  % 显示新矩阵的结果

思考题:你能不使用循环语句求解这个问题吗?

参考答案:

matrix(:,all(diff(sort(matrix))))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贪心的一些题目

题目1&#xff1a;分班 5478. 分班 - AcWing题库 解题 #include<iostream> #include<algorithm> using namespace std; const int N100010; int n,k,l; int a[N]; int main() {scanf("%d%d%d",&n,&k,&l);int mn*k;for(int i1;i<m;i) sc…

opencv实现图像的融合

实现图像的融合并且输出一张jpg格式的照片。 先显示一个彩色图的照片 然后我以彩色方式读取1.png&#xff0c;以灰度图方式读取3.png这张图片&#xff0c;并且用两个窗口独立地去显示(我后来发现不能把灰度图和彩色图相融合) 然后实现两个融合 #include <opencv2/highgu…

使用Matplotlib绘制圆环图

圆环图是饼图的修改版&#xff0c;中间区域被切掉。圆环图更关注使用弧的面积来以最有效的方式表示信息&#xff0c;而不是饼图&#xff0c;饼图更关注比较切片之间的比例面积。圆环图在空间方面更有效&#xff0c;因为圆环图内部的空白空间可用于显示有关圆环图的一些附加信息…

黑科技工具盒源码 好用的手机工具盒iAPP源码

全新推出&#xff01;多功能工具箱&#xff1a;一款实用的手机工具集&#xff0c;提供丰富的免费小工具&#xff0c;操作简便。目前包含六项黑科技功能&#xff0c;分别为QQ云端、短信测压、Q绑查询、照妖镜、chatgpt、网页一键打包APP。工具箱体积小巧&#xff0c;不占内存&am…

自建Web视频会议,视频互动,SFU/MCU融合架构选型方案分析

网络越来越好&#xff0c;大家已经越来越多接受在家在线办公&#xff0c;在线工作越来越离不开视频会议&#xff0c;视频互动&#xff0c;当然云平台很多&#xff0c;但也用不同的需求&#xff0c;很多需要自建平台与自已的业务系统集成对接。因为大家业务系统多是b/s架构。一般…

Go-zero中分布式事务的实现(DTM分布式事务管理器,在一个APi中如何调用两个不同服务的rpc层,并保证两个不同服务之间的业务逻辑同时成功)

涉及到的相关技术 1.DTM分布式事务管理器,解决跨数据库、跨服务、跨语言栈更新数据的一致性问题。 2.SAGA事务模式,SAGA事务模式是DTM中常用的一种模式,简单易上手.(当然还有其它更多的事务模式,这里采用的SAGA只不过是其中一种较为简单的方法) 3.Go-zero框架,ETCD服务注册... …

绝地求生:【2024PGC之路——PUBG电竞积分分布】

亲爱的PUBG电竞爱好者&#xff0c; 你们好&#xff01; 2024年PUBG电竞即将开始&#xff0c;让我们一起深入了解下今年令人激动的PGS 和 PGC赛事积分分配情况。 PUBG GLOBAL SERIES&#xff08;PGS全球系列赛&#xff09;: 积分分布 根据我们之前概述的《PUBG 2024电竞计划》…

[项目设计] 从零实现的高并发内存池(一)

&#x1f308; 博客个人主页&#xff1a;Chris在Coding &#x1f3a5; 本文所属专栏&#xff1a;[高并发内存池] ❤️ 前置学习专栏&#xff1a;[Linux学习] ⏰ 我们仍在旅途 ​ 目录 前言 项目介绍 1.内存池 1.1 什么是内存池 池化技术 内存池 1.2 为什…

P9905 [COCI 2023/2024 #1] AN2DL 【矩阵区间最大值】

文章目录 题目大意1.输入格式2.输出格式3.数据范围与约定 思路维护每一行区间维护每一列区间维护区间最大值code↓ 完结撒花(&#xffe3;▽&#xffe3;) / 题目大意 给定 n , m , r , s n,m,r,s n,m,r,s 和一个 n m n\times m nm 的整数矩阵 A A A&#xff0c;求它每个 …

PyTorch-神经网络

神经网络&#xff0c;这也是深度学习的基石&#xff0c;所谓的深度学习&#xff0c;也可以理解为很深层的神经网络。说起这里&#xff0c;有一个小段子&#xff0c;神经网络曾经被打入了冷宫&#xff0c;因为SVM派的崛起&#xff0c;SVM不了解的同学可以去google一下&#xff0…

Android 多桌面图标启动, 爬坑点击打开不同页面

备注 &#xff1a; MainActivity 正常带界面的UI MainActivityBt 和 MainActivityUsb 是透明的&#xff0c;即 android:theme"style/TranslucentTheme" ###场景1:只有MainActivity 设置成&#xff1a;android:launchMode"singleTask" 点击顺序&#xff1…

外贸网站模板建站

测绘检测wordpress外贸主题 简洁实用的wordpress外贸主题&#xff0c;适合做测绘检测仪器设备的外贸公司使用。 https://www.jianzhanpress.com/?p5337 白马非马衣服WordPress外贸建站模板 白马非马服装行业wordpress外贸建站模板&#xff0c;适用于时间服装企业的官方网站…

ehcache3介绍和使用示例

介绍 EhCache是一个广泛使用的Java进程内缓存框架&#xff0c;具有快速和精干的特点。它提供了以下主要优势&#xff1a; 速度快&#xff1a;由于其直接在JVM进程中运行&#xff0c;EhCache的访问速度非常快&#xff0c;适合对响应时间要求较高的应用。 配置灵活&#xff1a;…

使用 Haproxy 搭建Web群集

Haproxy是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如LVS 和Nginx。相比较而言&#xff0c;LVS.牲能最好&#xff0e;但是搭建相对复杂:Nginx的upstream模块支持群集功能&#xff0e;但是对群集节点健康检查功能不强&#xff0c;性能没有…

GEE:使用ReLu激活函数对单波段图像进行变换(以NDVI为例)

作者:CSDN @ _养乐多_ 本文将介绍在 Google Earth Engine (GEE)平台上,对任意单波段影像进行 ReLu 变换的代码。并以对 NDVI 影像像素值的变换为例。 文章目录 一、ReLu激活函数1.1 什么是 ReLu 激活函数1.2 用到遥感图像上有什么用?二、代码链接三、完整代码一、ReLu激活…

HTML5:七天学会基础动画网页6

CSS3自定义字体 ①&#xff1a;首先需要下载所需字体 ②&#xff1a;把下载字体文件放入 font文件夹里&#xff0c;建议font文件夹与 css 和 image文件夹平级 ③&#xff1a;引入字体&#xff0c;可直接在html文件里用font-face引入字体&#xff0c;分别是字体名字和路径 例…

【C++ 函数栈】栈区保存函数参数和函数调用的过程

目录 1 调用过程 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;C专栏&#x1f4a5; 标题&#xff1a;【C 函数栈】栈区保存函数参数和函数调用的过程❣️ 寄语&#xff1a;人生的意义或许可以发挥自己全部的潜力&#xff0c;所以加油吧&#xff…

循环队列与循环双端队列

文章目录 前言循环队列循环双端队列 前言 1、学习循环队列和循环双端队列能加深我们对队列的理解&#xff0c;提高我们的编程能力。 2、本文循环队列使用的是数组&#xff0c;循环双端队列用的是双向链表 3、题目连接&#xff1a;设计循环队列 &#xff0c;设计循环双端队列。 …

C++面试宝典第34题:整数反序

题目 给出一个不多于5位的整数, 进行反序处理。要求: 1、求出它是几位数。 2、分别输出每一位数字。仅数字间以空格间隔, 负号与数字之间不需要间隔。如果是负数,负号加在第一个数字之前, 与数字没有空格间隔。注意:最后一个数字后没有空格。 3、按逆序输出各位数字。逆序后…

华为od机试C卷-开源项目热度榜单

1、题目描述 某个开源社区希望将最近热度比较高的开源项目出一个榜单&#xff0c;推荐给社区里面的开发者。 对于每个开源项目&#xff0c;开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、issue…