台大郭彦甫-Matlab软件学习课堂exercise示例(第三讲)

这篇博客展示了Matlab中的结构化编程技巧,包括使用while循环进行数字求和,自定义函数的实现,以及矩阵填充的两种方法对比。此外,还涉及了矩阵中负数元素的定位和替换为0的操作。最后,博主分享了一个将华氏度转换为摄氏度的交互式函数,允许用户连续输入并提供友好输出。
摘要由CSDN通过智能技术生成

台大郭彦甫-Matlab软件学习课堂exercise示例


第三讲 结构化程式与自定义函数

(P12 exercise)
n=1;
sum=0;
while n<1000        %对1到999的数字进行求和运算
    sum=sum+n;
    n=n+1;
end

>> sum

sum =

      499500
(P13 exercise)
%P13课堂练习,如何表达a=[2 2^3 2^5 2^7 2^9]?
%也就是a(1)=2, a(2)=2^3, a(3)=2^5...
i=0;
for n=1:5
    a(n)=2^(n+i);
    i=i+1;
end
disp(a)

>> Class_3
     2     8    32   128   512
(P14 exercise)
%%
tic
for ii=1:2000
    for jj=1:2000
        A(ii,jj)=ii+jj;
    end
end
toc
%%
tic
A=zeros(2000,2000);
for ii=1:size(A,1)      %size(A,1)返回A的第一个维度的length(即矩阵的行数)
    for jj=1:size(A,2)  %size(A,2)返回A的第二个维度的length(即矩阵的列数)
        A(ii,jj)=ii+jj;
    end
end
toc

>> Class_3
>> 历时 0.015492 秒。
>> 历时 0.023336 秒。

(P15 exercise)
%目的:找到矩阵A中值为负的元素、将这些元素的位置存储在矩阵B中、
%改变这些元素的值为0
n=1;i=1;
A=[0 -1 4; 9 -14 25; -34 49 64];
for n=1:9
    if A(n)<0
        B(i)=n;  i=i+1; A(n)=0;     
    end

end

>> Class_3
>> A

A =

     0     0     4
     9     0    25
     0    49    64

>> B

B =

     3     4     5
(P21 exercise)
%此练习有以下几点提示:
%1.输入为华氏度,输出为摄氏度。
%2.具有连续输入,持续运行程序的功能,且输入为Enter时结束脚本。
%3.以下示例包含Class_3_tempconv.m和temp_conv.m总共两个文件,运行脚本之前需要将两个文件放入同一个文件夹。

%temp_conv.m
function C_temp=temp_conv()
prompt='请输入华氏度,并在输入完成之后按下回车\n';
F_temp_temp=input(prompt);               %得到输入温度值(华氏度)
F_temp=isempty(F_temp_temp);
if F_temp==1                              %如果用户输入为回车,则输出为1
    C_temp=1;
else                                       %如果用户输入不为回车,则计算温度值(摄氏度)
    C_temp=F_temp_temp-273;
    num2str(C_temp);          %num2str将数字转化为字符串
    fprintf('得到的摄氏度为:%s\n',num2str(C_temp));
    fprintf('*******************************************\n');
end

%Class_3_tempconv.m
for i=1:10          %如果输入为空,则不执行temp_conv函数;不为空则继续执行,最多可以连续输入10次
a=temp_conv();
if a==1
    break
end
end
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值