【matlab 官方刷题网站cody】题目解答积累

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析无线通信深度学习图像处理计算机视觉信号处理、量化金融与风险管理、机器人,控制系统等领域。

为加强自身在使用matlab时编程的思维逻辑,所以记录下刷题过程中遇到的一些问题以及问题总结,欢迎各位一起探讨。

MATLAB Cody是MathWorks官方的通关形式题库,问题丰富,涉及面广,Cody Challenge是面向新手的题库,由易到难,帮助大家掌握基础,并感受matlab矩阵化运算的特点。

目录

刷题前的准备

开始刷题

2021.3.14  天气阴

刷题前的准备

  1. 题库网址:https://ww2.mathworks.cn/matlabcentral/cody/problems
  2. 需要注册一个账户:刷题时需要注册账户,但由于我的学校并没有购买激活秘钥,于是我询问了一些同学,他们学校也没有激活秘钥。后来我的解决方案,就是直接进行账户注册,在使用激活秘钥时,可以使用别的学校的秘钥(微信搜索“MATLAB激活秘钥”可以找到一些学校的秘钥),然后就注册成功了可以刷题了,哈哈

开始刷题

2021.3.14  天气阴

题目1:给定变量x作为输入,将其乘以2并将结果放入y中。

示例:


 Input  x = 2
 Output y is 4

 Input  x = 17
 Output y is 34

解决:

function y= times2(x)
    y=2*x;
end

思考:难度较低,主要考察函数的基本使用,以及数值计算的基本规则。

题目2:通过将元素括在方括号中来创建矢量,如:x =[1 2 3 4] 或x =[1,2,3,4]。创建向量 x = [1 2 3 4 5 6 7 8 9 10],寻找一种更快的方法。

function x=oneToTen
    x=1:10;
end

思考:难度较低,需要了解如何能简化矩阵的表达。

2021.3.15  天气阴

题目3:找到输入向量的所有数字的总和

     示例:

Input  x = [1 2 3 5]
Output y is 11

Input  x = [42 -1]
Output y is 41

     解决:

function y = vecsum(x)
   y = sum(x)
end

    思考:主要考察矩阵元素相加的函数sum的使用,A=sum(B,1)表示每列相加,A=sum(B,2)表示每行相加。

题目4:制作一个棋盘格矩阵

     示例:

 Input  n = 5
 Output a is [1 0 1 0 1
              0 1 0 1 0
              1 0 1 0 1
              0 1 0 1 0 
              1 0 1 0 1]

    解决:

function a = checkerboard(n)
  a = ones(n);
  a(2:2:n,1:2:n) = 0;
  a(1:2:n,2:2:n) = 0;
end

     思考:由于是矩阵元素1比较多,所以利用ones函数构造全1的函数,然后,发现矩阵元素的分布具有一定的规律,令其等于0即可。

2021.3.17  天气阴

题目5:三角数问题

  示例:

6 = 1 + 2 + 3

Input  n = 4
 Output t is 10

    解决:

我的代码:
function t = triangle(n)
t=0;
    for i=1:n
        t0=i;
        t=t0+t;
    end
end

别人的代码:
function t = triangle(n)
   t = sum(1:n)
end

   思考:对此类叠加问题,我的第一想法就是循环叠加。但要改掉这一问题,要多使用已有函数,少用for循环,降低时间复杂度。

题目6:选择向量的任何其他元素

  示例:

Input x=[1 3 2 4 3 5]
output y is [1 2 3 ]

Input x=[5 9 3 2 2 0 -1]
output y is [5 3 2 -1]

    解决:

function y= everyOther(x)
    y=x(1:2:end);
end

   思考:数组矩阵(向量)的选择和创建。

题目7:去除向量的某列

  示例:

Input A =[1 2 3 ;
          4 5 6 ];
n=2

Output B=[1 3;
          4 6];

    解决:

function B=column_removal(A,n)
    A(:,n)=[];
    B=A;
end

   思考:需要知道矩阵行列的删除方式,即只需要将该行或者该列赋予一个空矩阵[]即可。

题目8:两个数相加

    解决:

function c=add_two_numbers(a,b)
    c=a+b;
end

   思考:比较简单,略。

题目9:

 

 

 

 

 

 

 

 

 

 

 

 

  • 10
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alert_feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值