MATLAB part3-数据类型与运算符
MATLAB 数据类型
MATLAB 采用了动态类型系统,这意味着您不需要像 C++ 或 Java
那样预先声明变量的类型。当您创建一个新变量时,MATLAB
会自动推断其类型并分配相应的内存空间。这种设计使得 MATLAB
使用起来非常直观和灵活。
1234% 无需声明类型,MATLAB自动推断x = 5; % 自动识别为double类型name = 'Alice'; % 自动识别为char类型flag = true; % 自动识别为logical类型
MATLAB 不需要任何类型声明或维度语句。每当 MATLAB
遇到一个新的变量名,它就创建变量并分配适当的内存空间。
如果变量已经存在,那么MATLAB将用新内容替换原始内容,并在必要时分配新的存储空间。
这种动态特性与Python非常相似,但MATLAB有其独特的矩阵导向设计。在MATLAB中,所有数据本质上都是矩阵或数组,即使是单个数字也被视为1×1的矩阵。
例如
1Ergou =...
MATLAB part2-变量和命令.md
MATLAB 变量
变量命名
在 MATLAB 环境中,每个变量都是一个数组或矩阵。MATLAB
变量命名规则:
必须以字母开头
可以包含字母、数字和下划线
区分大小写
长度不超过 63 个字符
可以通过简单的方式分配变量。
1x2 = 3; thirus_normary = 19;
变量基础
在MATLAB环境中,每个变量都是一个数组或矩阵。
可以通过简单的方式分配变量。例如,
1x2 = 3; %定义x2并用值初始化它
MATLAB将执行上述语句并返回结果 x2 = 3
这个变量的含义是它创建一个名为x2的1乘1矩阵,并将值 3
存储在其元素中。
注意
将变量输入系统后,您以后可以参考它。
变量在使用前必须具有值。
当表达式返回未分配给任何变量的结果时,系统会将其分配给名为ans的变量,该变量可在以后使用。
1sqrt(78)
MATLAB将执行上述语句并返回以下结果
1ans = 8.8318
多项分配
可以在同一行上进行多个分配(使用逗号分隔):
1a = 12; b = 7; c...
MATLAB part1-入门介绍和基础语法
MATLAB...
推导theta=0纵剖面上的抽水降落曲线公式
推导 θ = 0
纵剖面上的抽水降落曲线公式
根据辐射井的抽水降落曲面模型论文内容,θ = 0
纵剖面是沿着辐射管方向的剖面。推导分为两个区域:辐射管范围内的垂直渗流区(0 ≤ ρ ≤ l + r)和辐射管范围外的水平渗流区(l + r ≤ ρ ≤ R)。以下是详细推导过程:
1. 垂直渗流区 (0 ≤ ρ ≤ l + r)
基本假设:
在垂直渗流区(辐射管范围内),地下水运动以垂向渗流为主,其核心特征是:
近井处水力坡度平缓(水位变化小)
远离井处水力坡度陡峭(水位变化大)
水位差变化率与当前位置水位差成正比
数学表述为: ΔT(ρ, 0) = ω ⋅ T(ρ, 0) ⋅ ΔρΔT(ρ, 0) = ω ⋅ T(ρ, 0) ⋅ Δρ
其中:
T(ρ, 0) = H(ρ, 0) − Hs(点(ρ, 0)与竖井水位差)
ω:垂直渗流区特征参数(常数)
Δρ:径向距离增量
在垂直渗流区,水位高度 T(ρ, 0) 的增长率为常数
ω。这意味着单位距离 Δρ 内,T(ρ, 0) 的增量与 T(ρ, 0)...
如何在GitHub中的开源项目中做出贡献
前言
由于近期主包看中了一个项目,所以搞了一些 svg
作为贡献提了上去,发现很多人想做贡献但是不会)
前提
贴一下 Git 基础配置
1234567# 配置用户名和邮箱git config --global user.name "您的用户名"git config --global user.email "您的邮箱@example.com"# 配置SSH密钥(推荐)ssh-keygen -t ed25519 -C "您的邮箱@example.com"# 将生成的公钥添加到GitHub账号设置中
你得找好项目,评估一下项目现在处于什么水平,然后去做什么样的贡献。
通过 GitHub
的stars、forks、issues活跃度和最近更新时间筛选,优先选择近
3 个月有提交的项目。要不然你的 PR 很有可能就会放置很久。
练习提交第一个PR,这对于开源新手来说会是一个很好的开始,GitHub
官方也知道这件事,一般新手可从good first...
Java7新特性-switch支持String类型
Java
7新特性:Switch语句支持String详解
1概述
在Java
7之前,switch语句只能用于基本数据类型(byte、short、char、int)和它们对应的包装类,以及枚举类型。Java
7引入了一个重要的语言增强特性:switch语句支持String类型,这极大地提升了代码的可读性和开发效率。
基本语法和使用
switch 原始语法
1234567891011switch (stringVariable) { case "value1": // 执行代码块1 break; case "value2": // 执行代码块2 break; default: // 默认执行代码块 break;}
简单示例
123456789101112131415161718192021222324252627282930public class StringSwitchExample {...
Java16新特性之Text Blocks文本块
Java16中的新特性——文本块
概述
Java 16 于 2021 年 3
月发布,其中包含了一系列新特性和改进。在这些更新中,文本块(Text
Blocks)作为正式特性的正式引入是一项重要的改进,它极大地提高了处理多行字符串的便捷性和可读性。下面将详细介绍
Java 16 中文本块的相关内容。
文本块解决了Java长期以来的一个痛点:处理多行字符串时的繁琐和可读性问题。在文本块出现之前,开发者需要在每行末尾添加换行符(\n),使用加号(+)连接字符串,或者利用反斜杠(\)来延续字符串并处理大量转义字符,这导致代码难以阅读和维护。
文本块的引入不仅简化了多行字符串的表示,还显著提升了代码可读性,特别在处理HTML、JSON、SQL等结构化文本时效果尤为明显。这项特性最初在Java
13和14中作为预览功能推出,经过社区反馈和改进后,终于在Java
16中成为正式特性。
文本块的语法
文本块使用三个双引号(""")作为界定符,中间可以直接包含多行文本。其语法格式如下:
12345String text = """ ...
Java17新特性之record关键字
Java17 出现的各种新特性
先介绍一下 Java17 都出现了哪些新特性
密封类
密封类(Sealed Classes)
密封类允许你控制哪些类可以继承或实现某个类或接口,提供了比访问修饰符更精细的继承控制。
12345678910111213public sealed class Shape permits Circle, Rectangle, Triangle { // 基类实现}public final class Circle extends Shape { private final double radius; // 实现细节}public final class Rectangle extends Shape { private final double width, height; // 实现细节}
模式匹配增强
在instanceof中使用模式匹配,减少了类型转换的样板代码:
12345678910// Java 17之前if (obj...
Spring Boot part6-Web开发之Web场景与静态资源
该文章较多源码分析))
Web 场景中的自动配置
如何使用 Spring Boot,进行 web 开发
Spring Boot 的 Web 开发能力,由 SpringMVC 提供,给予了 Spring MVC
自动配置的能力
一般来说,在 Spring Initliazer 中,勾选一个web starter
场景,再选上一个 Lombok 就可以了。
前面说过,Spring Boot 将会帮我们自动配置好 web
开发场景中需要的相关配置,只需要在配置文件中指定少量配置就可以运行起来了,我们只需要注意在业务代码中就可以了。
自动配置
Spring Boot 的自动配置类是其核心特性之一,通过
@EnableAutoConfiguration 注解和
AutoConfigurationImportSelector...
Spring Boot part5-日志配置
日志配置
规范:项目开发不要使用System.ut.println(),应该用日志记录信息
image-20250527110648134
简介
Spring
使用commons - logging作为内部日志,但底层日志实现是开放的。可对接其他日志框架。
spring5 及以后
commons - logging被spring直接自己写了
支持 jul,log4j2,logback。SpringBoot
提供了默认的控制台输出配置,也可以配置输出为文件。
logback 是默认使用的。Log4j 被弃用了,一般用 Log4j2
虽然日志框架很多,但是我们不用担心,使用 SpringBoot
的默认配置就能工作的很好。
虽然默认是 Logback,但 Spring Boot 也支持对接其他日志框架,如 Java
Util Logging(JUL)、Log4j2
等。不过在引入其他日志框架时,需要注意排除默认的 Logback
相关依赖,避免冲突。例如若要使用 Log4j2,需在pom.xml中添加...