matlab初学者例题系列3

clear all;
clc;
Year = input('请输入年份:');
Month = input('请输入月份:');
Day = input('请输入日:');
M = [31;28;31;30;31;30;31;31;30;31;30;31];
if (rem(Year, 100) ~= 0 && rem(Year, 4) == 0) || rem(Year, 400) == 0 %if语句后不用加分号。为了可读性增加括号
   M(2) = M(2) + 1;
end
sum_Day = cumsum([0; M]);%通过在M数组前加入一个0,得到一个新的0向量[0,M]。因为不要累计当月日子。累计的结果储存在sum_Day向量中。
%也可以写作sum_Day=[0,cumsum(M)],
N = sum_Day(Month) + Day;%通过月份数值调用sum_Day中的累计和再加上天数。sun_Day向量比M向量多1。
fprintf('%d年%d月%d日是这一年的第%d天', Year, Month, Day, N);

1、matlab中取余运算符rem,mod的区别

在 MATLAB 中,rem(a, b) 函数是用来计算 a 除以 b 的余数(即取模)。

该函数有两个输入参数 ab,表示被除数和除数。返回值是 a 除以 b 的余数。

以下是 rem() 函数的使用示例:

a = 10; b = 3;
result = rem(a, b); 
disp(result); % 输出为 1

区别:

在 MATLAB 中,mod()rem() 函数在处理正数时结果是相同的,它们返回的是除法的余数(取模)。

但在处理负数时,它们的行为是不同的:

  • mod(a, b) 函数返回的余数与被除数 a 的符号相同。例如,mod(-10, 3) 的结果是 -1,与被除数 -10 的符号相同。
  • rem(a, b) 函数返回的余数与除数 b 的符号相同。例如,rem(-10, 3) 的结果是 2,与除数 3 的符号相同。
% mod() 函数
disp(mod(-10, 3));  % 输出 2
disp(mod(10, 3));   % 输出 1

% rem() 函数
disp(rem(-10, 3));  % 输出 -1
disp(rem(10, 3));   % 输出 1

对于正数的取模运算,mod()rem()% 都得到相同的结果。不能使用%进行取余运算,这是注释符号。

2.累计求和函数cumsum

cumsum() 函数是 MATLAB 中常用的函数之一,用于计算向量元素的累计和(即前缀和)。

具体来说,cumsum() 函数将输入向量的第 i 个元素与前面所有元素的和累加,得到一个长度等于输入向量的向量。例如,对于向量 [1, 2, 3, 4],其 cumsum() 的结果为 [1, 3, 6, 10],即第一个元素保持不变,第二个元素为前两个元素之和,第三个元素为前三个元素之和,以此类推。

下面是使用 cumsum() 函数的示例代码:

x = [1, 2, 3, 4]; 
y = cumsum(x); 
disp(y); % 输出 [1, 3, 6, 10]

此外,cumsum() 函数还有其他用法,可以通过输入矩阵或者指定维度来计算矩阵元素的累计和。对于矩阵的累计和,cumsum() 函数会按列进行累计求和。

例如,对于矩阵 [1, 2; 3, 4],其 cumsum() 的结果为 [1, 2; 4, 6],表示第一列保持不变,第二列为第一列和第二列的和。。

下面是使用 cumsum() 函数计算矩阵元素累计和的示例代码:

A = [1, 2; 3, 4]; 
B = cumsum(A, 1); % 1表示按列计算累计和 
C = cumsum(A, 2); % 2表示按行计算累计和 
disp(B); % 输出 [1, 2; 4, 6] 
disp(C); % 输出 [1, 3; 3, 7]

这段代码中,第一次调用 cumsum() 函数按列计算矩阵元素的累计和,得到矩阵 [1, 2; 4, 6];第二次调用 cumsum() 函数按行计算矩阵元素的累计和,得到矩阵 [1, 3; 3, 7]

当进行按行计算累计和时,cumsum() 函数会按照行的顺序,对每一行的元素进行累计求和操作。

对于矩阵 A = [1, 2; 3, 4] 进行按行计算累计和的操作如下:

对于第一行 [1, 2],累计和为 [1, 1+2] = [1, 3]。 对于第二行 [3, 4],累计和为 [3, 3+4] = [3, 7]

因此,按行计算累计和的结果为矩阵 C = [1, 3; 3, 7]

当进行按列计算累计和时,cumsum() 函数会按照列的顺序,对每一列的元素进行累计求和操作。

对于矩阵 A = [1, 2; 3, 4] 进行按列计算累计和的操作如下:

对于第一列 [1; 3],累计和为 [1; 1+3] = [1; 4]。 对于第二列 [2; 4],累计和为 [2; 2+4] = [2; 6]

因此,按列计算累计和的结果为矩阵 B = [1, 2; 4, 6]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值