MATLAB基础学习相关知识
MATLAB安装参考:抖音-记录美好生活
MATLAB基础知识学习参考:【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3
第1部分:变量定义和基本运算
生成矩阵:
% 生成矩阵% 直接法% ,表示行 ;表示列 a = [1,2,3;4,5,6;7,8,9];% 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略b = 1:1:10; % 1,2,...10b = 1:10; % 与上一个等价% 函数生成% linspace(开始,结束,元素个数),等差生成指定元素数的一维矩阵,省略个数则生成100个c = linspace(0,10,5); % 在0和10之间生成等间距的5个元素% 特殊矩阵% eye(维数)单位阵 4*4e = eye(4); % zeros(维数)全零阵 1*4z = zeros(1,4);% ones(维数)全1阵 4*1 o = ones(4,1);% rand(维数)0~1分布随机阵 r = rand(4); % randn(维数)0均值Gaussian分布随机阵 rn = randn(4);
矩阵运算:
% 矩阵运算% diag(行向量,主对角线上方第k条斜线)用行向量生成对角阵diag_a = diag(a,1);% tril(矩阵,主对角线上方第k条斜线)生成矩阵的下三角阵,triu上三角阵 tril_a = tril(a,1);% 加、减、乘、乘方(矩阵运算)a*a% 点运算% a.*b , a./b , a.\b , a.^b 对应元素的*,/,\,^运算% 点乘运算保证矩阵维数相等a.*a% 逆矩阵% 伪逆矩阵,当a不是方阵,求广义逆矩阵;当a是可逆方阵,结果与逆矩阵相同% 直接通过MatLab得到线性方程的解pinv(a) % 特征值,特征向量[v,D] = eig(a); % 输出v为特征向量,D为特征值对角阵% *行列式det(a)% *秩rank(a)% *伴随compan(b)
矩阵的修改:
在Matlab中矩阵存储一般是列优先的
% 矩阵的修改%部分替换chg_a = a;chg_a(2,3) = 4; % (行,列)元素替换chg_a(1,:) = [2,2,2]; % (行,:)替换行,为[]删除该行chg_a(:,1) = []; % (:,列)替换列,为[]删除该列% 转置T_a = a';% 指定维数拼接c1_a = cat(1,a,a); % 垂直拼接c2_a = cat(2,a,a); % 水平拼接% *变维rs_a = reshape(a,1,9); % 元素个数不变,矩阵变为m*n
信息获取:
常用len_a来获取行和列中的最大值
% 信息获取% 矩阵的行列数[row_a, col_a] = size(a); % [行数,列数]% 行列中最大的len_a = length(a);
多维数组:
cat在matlab中是常用的一种拼接方式,这里cat中的”3“指的是按三维将两个矩阵进行拼接
% 多维数组% 创建% 直接法mul_1(:,:,1) = [1,2,3;2,3,4];mul_1(:,:,2) = [3,4,5;4,5,6];% *扩展法mul_2 = [1,2,3;2,3,4];mul_2(:,:,2) = [3,4,5;4,5,6]; % 若不赋值第一页,第一页全为0% cat法mul_31 = [1,2,3;2,3,4];mul_32 = [3,4,5;4,5,6];mul_3 = cat(3,mul_31,mul_32); % 把a1a2按照“3”维连接
字符串:
字符串在matlab中并不常用,但后续的__2__函数中可能会将字符串转化为其他形式,或将其他形式转化为字符串的形式
% *字符串% 创建str0 = 'hello world'; % 单引号引起str1 = 'I''m a student'; % 字符串中单引号写两遍str3 = ['I''''a' 'student']; % 方括号链接多字符串str4 = strcat(str0, str1); % strcat连接字符串函数str5 = strvcat(str0, str1); % strvcat连接产生多行字符串str6 = double(str0); % 取str0的ASCII值,也可用abs函数str7 = char(str6); % 把ASCII转为字符串% 操作% 比较strcmp(str0, str1); % 相等为1,不等为0strncmp(str0, str1, 3); % 比较前3个是否相等(n)strcmpi(str0, str1); % 忽略大小写比较(i)strncmpi(str0, str1, 3); % 忽略大小写比较前3个是否相等% 查找替换strfind(str0, str1); % 在str0找到str1的位置strmatch(str1, str0); % 在str0字符串数组中找到str1开头的行数strtok(str0); % 截取str0第一个分隔符(空格,tab,回车)前的部分strrep(str0, str1, str2); % 在str0中用str2替换str1% 其他upper(str0); % 转大写,lower转小写strjust(str0, 'right'); % 将str0右对齐,left左对齐,center中间对齐strtrim(str0); % 删除str0开头结尾空格eval(str0); % 将str0作为代码执行
转换:
% ___2___ --> 如num2str,将数字转字符串; dec2hex,将十进制转十六进制
%转换str_b = num2str(b);% abs,double取ASCII码;char把ASCII转字符串abs_str = abs('aAaA');
第2部分:程序结构
程序控制:
continue: 跳过当次循环剩下语句,进入下一循环
break :跳出当前循环
return :跳出程序并返回
与其他语言相类似,matlab中也包含选择结构和循环结构这样普通的程序控制结构,与python的表示形式类似,需要用缩进来表示程序的执行步骤,但是不需要像python一样使用冒号”:“
%%
a = 5;
x = [1, 2]; y =[3, 4];%%
% 选择结构%if-elseif-else-endif a>0disp(x);elseif a==0disp(a);elsedisp(a-1);end% switch-case-otherwise-endswitch acase 0disp(a);case 1disp(a+1);otherwisedisp('aaa');end% try-catchtryz = x*y;catchz = x.*y; % 若try出错,则执行enddisp(z);%%
% 循环结构% for 循环变量=初值:步长:终值 - endfor i=0:1:10 % 步长为负,则初值大于终值disp(i); % 循环体内不可对循环变量做修改end% while-endwhile a>2disp(a);a = a-1;end
m文件:
% m文件% 脚本文件:没有输入输出参数,执行后变量结果返回工作空间,可直接运行% 以下是脚本文件,文件名假设为exp.m% **********************************************clearr = 5;s = pi*r*r;p = 2*pi*r;disp(s)disp(p)% **********************************************% 以下是调用% **********************************************exp% **********************************************% 函数文件:以function开头,有输入输出,变量为局部变量不返回工作空间,需要调用% 以下是函数文件% **********************************************function [s, p] = circ(r) % 文件命名应与函数名一致,系统找文件名circ.m% CIRC 计算圆面积和周长 % 简单说明% 参数:输入参数r:圆半径;输出参数s:圆面积,p:周长 % 详细说明s = pi*r*r;p = 2*pi*r;end%**********************************************% 以下是调用%**********************************************[a, b] = circ(5); % 返回为多个参数时,若写a = circ(5)则保留第一个返回值%**********************************************% *以下是带子函数的函数文件% **********************************************function y = key(w) % 主函数放第一个,函数名为keyif w==0y = type0(w); % 调用子函数type0elsey = type1(w);endendfunction y0 = type0(a) % 子函数,各子函数之间顺序无所谓y0 = a+1;endfunction y1 = type1(a)y1 = a+4;end% **********************************************% *函数输入输出参数可以不定% nargin:输入参数个数,nargout:输出参数个数% varargin:输入参数内容的元胞数组,varargout:输出参数% 以下是函数文件% **********************************************function varargout = idk(varargin)x = length(varargin);varargout{1} = x;varargout{2} = x+1;end% **********************************************
第3部分:图像绘制
二维曲线绘制:
线性图形设计:
颜色: b蓝 g绿 r红 c青 m紫 y黄 k黑 w白
线:-实线 :点线 --虚线 -.点画线
点:.实点 o圆圈 x叉 +十字 *星号 s方块 d钻石 v下三角 ^上三角 <左三角 >右三角 p五角星 h六角星
%%
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);%%
% 二维曲线绘制% 基本函数% plot(y)% y为向量% 纵坐标为y的值;横坐标自动为元素序号(角标+1),此处为1~9plot(y1); % y为矩阵figure; % 开启新绘图窗口,下一次绘图在新窗口y = [y1', y2'];plot(y); % 当y为矩阵,按每一列画出曲线,颜色自动区分% plot(x, y)% xy为向量plot(x, y1); % 先绘制曲线% plot(x1, y1, x2, y2...)plot(x, y1, x, y2); % 在同一个窗口同一坐标轴绘制多条曲线% 线性图形格式设置% 线形颜色数据点plot(x, y1, 'b:o'); % 蓝色 点线 圆圈% 坐标轴plot(x, y1);axis([-1*pi, 3*pi, -1.5, 1.5]); % 规定横纵坐标范围% 图形修饰% 标题标签title('a title'); % 图像标题xlabel('this is x'); % x轴标记,同理还有ylabel,zlabel% 图例设置legend'hahaha', 'location', 'best'); % str的顺序与绘图顺序一致; 'best'指图例位置最佳化,还有其他位置% 图形保持plot(x, y1);hold on; % 在原有窗口y1曲线上增加绘制下一个图形plot(x, y2); % y2在同一窗口内被绘制 hold off;% 分割绘制subplot(2, 2, 1); % 分割成2x2区域,在第一块区域绘制下一个图形plot(x, y1); % y1被绘制在4块区域的第一块subplot(2, 2, 2); % 分割方法相同,区域改变plot(x, y2); % y2在第二块区域%%
二维特殊图形绘制:
%*二维特殊图形绘制% 柱状图bar(x, y, width, '参数'); % x横坐标向量,m个元素; y为向量时,每个x画一竖条共m条,矩阵mxn时,每个x画n条;% width宽度默认0.8,超过1各条会重叠;% 参数有grouped分组式,stacked堆栈式; 默认grouped% bar垂直柱状图,barh水平柱状图,bar3三维柱状图,barh3水平三维柱状图(三维多一个参数detached, 且为默认)% 饼形图pie(x, explode, 'lable'); % x为向量显示每个元素占总和百分比, 为矩阵显示每个元素占所有总和百分比% explode向量与x同长度,为1表示该元素被分离突出显示,默认全0不分离% pie3绘制三维饼图% 直方图hist(y, n); % y为向量,把横坐标分为n段绘制hist(y, x); % x为向量,用于指定每段中间值, 若取N = hist(y, x), N为每段元素个数% 离散数据图stairs(x, y, 'b-o'); % 阶梯图,参数同plotstem(x, y, 'fill'); % 火柴杆图,参数fill是填充火柴杆,或定义线形candle(HI, LO, CL, OP); % 蜡烛图:HI为最高价格向量,LO为最低价格向量,CL为收盘价格向量,OP为开盘价格向量% 向量图compass(u, v, 'b-o'); % 罗盘图横坐标u纵坐标vcompass(Z, 'b-o'); % 罗盘图复向量Zfeather(u, v, 'b-o'); % 羽毛图横坐标u纵坐标vfeather(Z, 'b-o'); % 羽毛图复向量Zquiver(x, y, u, v); % 以(x, y)为起点(u, v)为终点向量场图% 极坐标图% polar(theta, rho, 'b-o'); % 极角theta, 半径rhotheta = -pi:0.01:pi;rho = sin(theta);polar(theta, rho, 'b')% 对数坐标图semilogx(x1, y1, 'b-o'); % 把x轴对数刻度表示, semilogy是y轴对数刻度表示,loglog是两个坐标都用对数表示% 双纵坐标plotyy(x1, y1, x2, y2, 'fun1', 'fun2'); % fun规定了两条条线的绘制方式,如plot,semilogx,semilogy,loglog,stem等% 函数绘图f = 'sin(2*x)';ezplot(f, [0, 2*pi]); % 绘制f并规定横坐标范围,也有[xmin, xmax, ymin, ymax]x = '2*cos(t)';y = '4*sin(t)';ezplot(x, y); % 绘制x(t),y(t)在[0, 2*pi]图像, 也可以在最后用[tmin, tmax]规定t的范围
三维曲线曲面绘制:
% 三维曲线曲面绘制% 三维曲线x = 0:0.1:2*pi;y = sin(x); z = cos(x);plot3(x, y, z, 'b-*');% 三维曲面% 三维网格x = -5:0.1:5; % 规定了x轴采样点,也规定了x轴范围y = -4:0.1:4; % 规定了y轴采样点,也规定了y轴范围[X, Y] = meshgrid(x, y); % 得到了xoy面网格点Z = X.^2+Y.^2;mesh(X, Y, Z) % XY是meshgrid得到的网格点,Z是网格顶点,c是用色矩阵可省略% 三维表面图x = -5:0.1:5; y = -4:0.1:4;[X, Y] = meshgrid(x, y);Z = X.^2+Y.^2; % 以上部分同上surf(X, Y, Z) % 与上一个类似
第4部分:多项式
多项式:
多项式创建时自动按照系数向量,按x降幂排列,最右边是常数,若所给数字为[1,2,3,4],则生成的多项式为,最后一项为常数
%%
% 多项式% 创建p = [1, 2, 3, 4]; % 系数向量,按x降幂排列,最右边是常数f1 = poly2str(p, 'x'); % 生成好看的字符串 f1 = x^3 + 2 x^2 + 3 x + 4,不被认可的运算式f2 = poly2sym(p); % 生成可用的符号函数 f2 = x^3 + 2*x^2 + 3*x + 4% 求值x = 4;y1 = polyval(p, x); % 代入求值;若x1为矩阵,则对每个值单独求值% 求根r = roots(p); % p同上,由系数求根,结果为根植矩阵p0 = poly(r); % 由根求系数,结果为系数矩阵%%
数据插值:
% 数据插值% 一维插值%yi = interp1(X, Y, xi, 'method')X = [-3, -1, 0, 1, 3];Y = [9, 1, 0, 1, 9]; % XY为已知点横纵坐标向量y2 = interp1(X, Y, 2); % 差值预估在x=2的y的值,x不能超过已知范围(此处x<3)y2m = interp1(X, Y, 2, 'spline'); % 用spline方法(三次样条)差值预估在x=2的y的值% 二维插值%zi = interp1(X, Y, Z, xi, yi,'method')
数据统计:
%%
X = [2, 3, 9, 15, 6, 7, 4];
A = [1, 7, 2; 9, 5, 3; 8, 4 ,6];
B = [1, 7, 3; 9, 5, 3; 8, 4 ,6];% 数据统计% 矩阵最大最小值y = max(X); % 求矩阵X的最大值,min最小值[y, k] = max(X); % 求最大值,k为该值的角标[y, k] = max(A, [], 2); % A是矩阵,'2'时返回y每一行最大元素构成的列向量,k元素所在列;'1'时与上述相同% 均值和中值y = mean(X); % 均值y = median(X); % 中值y = mean(A, 2); % '2'时返回y每一行均值构成的列向量;'1'时与上述相同y = median(A, 2); % '2'时返回y每一行中值构成的列向量;'1'时与上述相同% 排序Y = sort(A, 1, 'ascend'); % sort(矩阵, dim, 'method')dim为1按列排序,2按行排序;ascend升序,descend降序[Y, I] = sort(A, 1, 'ascend'); % I保留了元素之前在A的位置% 求和求积累加累乘y = sum(X); % 求和y = prod(X); % 求积y = cumsum(X); % 累加y = cumprod(X); % 累乘
数值计算:
% *数值计算% 最(极)值%多元函数在给定初值附近找最小值点x = fminsearch(fun, x0);% 函数零点x = fzero(fun, x0); % 在给定初值x0附近找零点
第5部分:符号函数
符号对象创建:
%%
% 符号对象创建% sym函数p = sin(pi/3);P = sym(p, 'r'); % 用数值p创建符号常量P;'d'浮点数'f'有理分式的浮点数'e'有理数和误差'r'有理数% syms函数syms x; % 声明符号变量f = 7*x^2 + 2*x+9; % 创建符号函数% 符号对象精度转换digits; % 显示当前用于计算的精度digits(16); % 将计算精度改为16位,降低精度有时可以加快程序运算速度或减少空间占用a16 = vpa(sqrt(2)); % vpa括起的运算使sqrt(2)运算按照规定的精度执行a8 = vpa(sqrt(2), 8); % 在vpa内控制精度,离开这一步精度恢复
符号运算:
+加-减*乘/除外
'转置 ; ==相等 ; ~=不等
sin, cos, tan; asin, acos, atan 三角反三角
sinh, cosh, tanh; asinh, acosh, atanh 双曲反双曲
conj复数共轭;real复数实部;imag复数虚部;abs复数模;angle复数幅角
diag矩阵对角;triu矩阵上三角;tril矩阵下三角;inv逆矩阵;det行列式;rank秩;poly特征多项式;
expm矩阵指数函数;eig矩阵特征值和特征向量;svd奇异值分解;
符号多项式函数运算:
%%
% 符号多项式函数运算% *符号表达形式与相互转化% 多项式展开整理g = expand(f); % 展开h = collect(g); % 整理(默认按x整理)h1 = collect(f, x); % 按x整理(降幂排列)% 因式分解展开质因数fac = factor(h); % 因式分解factor(12); % 对12分解质因数% 符号多项式向量形式与计算syms a b c;n = [a, b, c];roots(n); % 求符号多项式ax^2+bx+c的根n = [1, 2, 3];roots(n); % 求符号多项式带入a=1, b=2, c=3的根% *反函数fi = finverse(f, x); % 对f中的变量x求反函数%%
符号微积分:
% 符号微积分% 函数的极限和级数运算% 常量a,b% 极限limit(f, x, 4); % 求f(x), x->4limit(f, 4); % 默认变量->4limit(f); % 默认变量->0limit(f, x, 4, 'right'); % 求f(x), x->4+, 'left' x->4-% *基本级数运算% 求和symsum(s, x, 3, 5); % 计算表达式s变量x从3到5的级数和,或symsum(s, x, [a b])或symsum(s, x, [a;b])symsum(s, 3, 5); % 计算s默认变量从3到5的级数和symsum(s); % 计算s默认变量从0到n-1的级数和% 一维泰勒展开taylor(f, x, 4); % f在x=4处展开为五阶泰勒级数taylor(f, x); % f在x=0处展开为五阶泰勒级数taylor(f); % f在默认变量=0处展开为五阶泰勒级数% 符号微分% 单变量求导(单变量偏导)n = 1; % 常量nfn = diff(f, x, n); % f对x的n阶导f1 = diff(f, x); % f对x的1阶导diff(f, n); % f对默认变量的n阶导diff(f); % 默认变量1阶导% 多元偏导fxy = diff(f, x, y); % 先求x偏导,再求y偏导fxyz = diff(f, x, y, z); % 先求x偏导,再求y偏导,再求z偏导% 符号积分% 积分命令int(f, x, 1, 2); % 函数f变量x在1~2区间定积分int(f, 1, 2); % 函数f默认变量在ab区间定积分int(f, x); % 函数f变量x不定积分int(f); % 函数f默认变量不定积分% 傅里叶,拉普拉斯,Z变换%%
符号方程求解:
% *符号方程求解% 符号代数方程% 一元方程eqn1 = a*x==b;S = solve(eqn1); % 返回eqn符号解% 多元方程组eqn21 = x-y==a;eqn22 = 2*x+y==b;[Sx, Sy] = solve(eqn21, eqn22, x, y); % [Svar1,...SvarN]=solve(eqn1,...eqnM, var1,...varN),MN不一定相等[Sxn, Syn] = solve(eqn21, eqn22, x, y,'ReturnCondition', true); % 加上参数ReturnCondition可返回通解及解的条件% 非线性fsolveX = fsolve(fun, X0, optimset(option)); % fun函数.m文件名;X0求根初值;option选项如('Display','off')不显示中间结果等
其他参数(参数加上true生效):
IgnoreProperty,忽略变量定义时一些假设
IgnoreAnalyticConstraints,忽略分析限制;
MaxDegree,大于3解显性解;
PrincipleValue,仅主值
Real,仅实数解
相关文章:
MATLAB基础学习相关知识
MATLAB安装参考:抖音-记录美好生活 MATLAB基础知识学习参考:【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分:变量定义和基本运算 生成矩阵: % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…...
设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)
文章目录 C 工厂模式引言一、简单工厂模式概念实现步骤示例代码优缺点 二、工厂方法模式概念实现步骤示例代码优缺点 三、抽象工厂模式概念实现步骤示例代码优缺点 C 工厂模式 引言 在 C 编程中,对象的创建是一个常见且基础的操作。然而,当项目规模逐渐…...
windows下docker使用笔记
目录 镜像的配置 镜像的拉取 推荐镜像源列表(截至2025年2月测试有效) 配置方法 修改容器名字 如何使用卷 创建不同的容器,每个容器中有不同的mysql和java版本(不推荐) 1. 安装 Docker Desktop(Win…...
SQLMesh 系列教程6- 详解 Python 模型
本文将介绍 SQLMesh 的 Python 模型,探讨其定义、优势及在企业业务场景中的应用。SQLMesh 不仅支持 SQL 模型,还允许通过 Python 编写数据模型,提供更高的灵活性和可编程性。我们将通过一个电商平台的实例,展示如何使用 Python 模…...
【时时三省】(C语言基础)用N-S流程图表示算法
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 N-S流程图 既然用基本结构的顺序组合可以表示任何复杂的算法结构,那么,基本结构之间的流程线就是多余的了。1973年,美国学者I.Nassi和B .Shneiderman提出…...
【HarmonyOS Next】鸿蒙监听手机按键
【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键,或者扩展按键的需求。亦或者是在某些场景下,禁止用户按下某些按键的业务需求。 这两种需求,鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…...
Unreal5从入门到精通之在编辑器中更新 UserWidgets
前言 在虚幻中创建越来越复杂和灵活的 UserWidget 蓝图时,一个问题是它们在编辑器中的外观与它们在游戏中的最终外观可能有很大不同。 库存面板示例 假设你想创建一个通用的库存显示小部件。我们可以在整个 UI 中使用它,无论我们需要在哪里显示某些内容。 标题,描述所显示…...
Django 5实用指南(五)模板系统
Django5的模板系统是其核心功能之一,允许开发者将动态数据嵌入到HTML模板中,并根据不同的业务需求渲染页面。Django模板系统基于 Django模板语言(DTL),它提供了一些强大的功能,如模板标签、过滤器、条件语句…...
游戏引擎学习第114天
打开内容并回顾 目前正在讨论一个非常重要的话题——优化。当代码运行太慢,无法达到所需性能时,我们该怎么办。昨天,我们通过在代码中添加性能计数器,验证了一些性能分析的数据,这些计数器帮助我们了解每个操作需要的…...
Python 赋能 AI:从零实现图像分类
人工智能(AI)热度持续攀升,而 Python 作为 AI 开发的利器,以其简洁易学、生态丰富的特点,成为众多开发者的首选。本文以图像分类为例,带你用 Python 实现一个简单的 AI 模型。 1. 环境准备 首先,我们需要安装一些必要的 Python 库: pip install tensorflow keras nu…...
UE引擎游戏加固方案解析
据VGinsights的报告,近年来UE引擎在过去几年中市场占比显著增长,其中亚洲市场增幅达到了30%,随着UE5的推出和技术的不断进步,UE引擎在独立开发者和移动游戏开发中的应用也在逐步增加。 UE引擎的优势在于强大的画面表现与视觉特效…...
Http升级为Https - 开发/测试服环境
1.应用场景 主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错; 2.学习/操作 1.文档阅读 deepseek 问答; 2.整理输出 报错信息: Mixed Content: The page at <URL> was loaded over HTTPS, but requested an insecure XMLHttpRequ…...
SaaS系统租户隔离方案分析:基于域名与请求头的比较
在设计SaaS系统时,租户隔离是非常重要的设计考虑因素。租户隔离的方式决定了系统的可扩展性、安全性和维护性。常见的租户隔离方案包括基于域名和基于**请求头(header)**的隔离方式。每种方式都有其优缺点,具体选择应根据系统的需…...
调用click.getchar()时Windows PyCharm无法模拟键盘输入
文章目录 问题描述解决方案参考文献 问题描述 调用 click.getchar() 时,Windows PyCharm 无法模拟键盘输入 解决方案 Run → Edit Configurations… → Modify options → Emulate terminal in output console 参考文献 Terminal emulator | PyCharm Documentati…...
科普:“docker”与“docker compose”
一、安装Docker Desktop 安装Docker Desktop,则既安装了Docker,也安装了Docker Compose 从Docker Desktop官方下载页面(https://www.docker.com/products/docker-desktop/),选择适合Windows系统的版本进行下载安装。 验证: do…...
Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
安装C 简介 Windows 版的 GCC 有三个选择: CygwinMinGWmingw-w64 Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系统上运行的工具集,用于在 Windows 环境下进行开发和编译。 Cygwin 是一个在 Windows 上运行的开源项目,旨在提供类Uni…...
【分布式理论12】事务协调者高可用:分布式选举算法
文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中,常常有多个节点(应用)共同处理不同的事务和资源。前文 【分布式理论9】分布式…...
GPT2 模型训练
GPT2 预训练模型 基座 专门供给别人使用的。 对中文分词是一个字一个字分,是Bert的分类方法 好处:灵活。 词库可以适应任何文章。 坏处:训练的难度更大。需要增加数据量 中文分词如果按词组分词 好处:需要的数据量小&#…...
蓝桥杯备考:递归初阶
什么是递归? 相信我们已经不陌生了,函数自己调用自己就叫递归 为什么要有递归? 当处理主问题时,遇到子问题,子问题的解决方法和主问题是一样的,这时候我们就要用到递归 解决流程:问题—》相…...
[C语言]指针进阶压轴题
下面代码打印结果是什么? #include<stdio.h> int main() {char* c[] { "ENTER","NEW","POINT","FIRST" };char** cp[] { c 3,c 2,c 1,c };char*** cpp cp;printf("%s\n", **cpp);printf("%s\n…...
YOLOv11-ultralytics-8.3.67部分代码阅读笔记-build.py
build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...
智能体(AI Agent、Deepseek、硅基流动)落地实践Demo——借助大模型生成报表,推动AI赋能企业决策
文章目录 一、 引言二、 系统设计与技术细节2.1 系统架构2.2 核心组件说明 三、 Demo 代码推荐博客: 四、输出年度营销报告1. 总销售额 根据提供的数据,年度总销售额为:740.0。2. 各产品销售额3. 各地区销售额4. 各产品在各地区的销售情况 分…...
mac os设置jdk版本
打开环境变量配置文件 sudo vim ~/.bash_profile 设置不同的jdk版本路径 # 设置JAVA_HOME为jdk17路径 export JAVA_HOME$(/usr/libexec/java_home -v 17)# 设置JAVA_HOME为jdk8路径 export JAVA_HOME$(/usr/libexec/java_home -v 1.8) 设置环境变量 # 将jdk加入到环境变量…...
Llama 3.1 本地电脑部署 Linux系统 【轻松简易】
本文分享在自己的本地电脑部署 llama3.1,而且轻松简易,快速上手。 这里借助Ollama工具,在Linux系统中进行大模型部署~ Llama3.1,有三个版本:8B、70B、405B Llama 3.1 405B 是第一个公开可用的模型,在常识…...
计算机网络安全之一:网络安全概述
1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及,越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是,支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而࿰…...
docker 部署JAR
docker pull openjdk:23 使用Docker运行生成的JAR包是一个将应用程序容器化的好方法,它确保了你的应用可以在任何安装了Docker的环境中以相同的方式运行。以下是创建一个Docker镜像并运行包含你Java应用程序的JAR包的基本步骤。1. 准备 Dockerfile首先,在…...
深研究:与Dify建立研究自动化应用
许多个人和团队面临筛选各种网页或内部文档的挑战,以全面概述一个主题。那么在这里我推荐大家使用Dify,它是一个用于LLM应用程序开发的低代码,开源平台,它通过自动化工作流程的多步搜索和有效汇总来解决此问题,仅需要最小的编码。 在本文中,我们将创建“ Deepresearch”…...
第1章:LangChain4j的聊天与语言模型
LangChain4J官方文档翻译与解析 目标文档路径: https://docs.langchain4j.dev/tutorials/chat-and-language-models/ 语言模型的两种API类型 LangChain4j支持两种语言模型(LLM)的API: LanguageModel:这种API非常简单,…...
IPv6报头40字节具体怎么分配的?
目录 IPv6报头结构 字段详解 示例代码:IPv6报头的Python实现 输出示例 IPv6协议是为了解决IPv4地址耗尽问题而设计的下一代互联网协议。与IPv4相比,IPv6不仅提供了更大的地址空间,还简化了报头结构,提高了网络设备的处理效率。…...
Ubuntu ARM / aarch64 CPU 镜像下载:如何在 ARM 设备上安装和使用 Ubuntu
随着 ARM 架构的逐渐普及,尤其是在移动设备和高效能计算设备中的应用,许多开发者和用户开始关注基于 ARM 架构的操作系统。Ubuntu 作为一款广泛使用的 Linux 发行版,自然也为 ARM 架构提供了优化的版本。本文将详细介绍如何下载适用于 ARM / …...
图论入门算法:拓扑排序(C++)
上文中我们了解了图的遍历(DFS/BFS), 本节我们来学习拓扑排序. 在图论中, 拓扑排序(Topological Sorting)是对一个有向无环图(Directed Acyclic Graph, DAG)的所有顶点进行排序的一种算法, 使得如果存在一条从顶点 u 到顶点 v 的有向边 (u, v) , 那么在排序后的序列中, u 一定…...
MySQL中count(1)和count(*) 的区别
MySQL中count(1)和count(*) 的区别 在 MySQL 中,COUNT(1) 和 COUNT(*) 均用于统计查询结果中的行数,但它们在语义及其背后的机制上有一些区别。 基本功能 COUNT(*):统计表中所有行的数量,无论列是否为 NULL。 COUNT(1)…...
Android 14输入系统架构分析:图解源码从驱动层到应用层的完整传递链路
一、资料快车 1、深入了解Android输入系统:https://blog.csdn.net/innost/article/details/47660387 2、书籍 - Android系统源代码情景分析 二、Perface 1、参考: 2、系统程序分析方法 1)加入log,并跟着log一步步分析 -logc…...
Web入侵实战分析-常见web攻击类应急处置实验2
场景说明 某天运维人员,发现运维的公司站点被黑页,首页标题被篡改,你获得的信息如下: 操作系统:windows server 2008 R2业务:公司官网网站架构:通过phpstudy运行apache mysqlphp开放端口&…...
Jenkins 配置 Credentials 凭证
Jenkins 配置 Credentials 凭证 一、创建凭证 Dashboard -> Manage Jenkins -> Manage Credentials 在 Domain 列随便点击一个 (global) 二、添加 凭证 点击左侧 Add Credentials 四、填写凭证 Kind:凭证类型 Username with password: 配置 用…...
Android Http-server 本地 web 服务
时间:2025年2月16日 地点:深圳.前海湾 需求 我们都知道 webview 可加载 URI,他有自己的协议 scheme: content:// 标识数据由 Content Provider 管理file:// 本地文件 http:// 网络资源 特别的,如果你想直接…...
selenium爬取苏宁易购平台某产品的评论
目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...
Linux中POSIX应用场景
Linux 提供了丰富的 POSIX(Portable Operating System Interface)标准接口,这些接口可以帮助开发者编写可移植、高效的应用程序。POSIX 标准定义了一系列系统调用和库函数,涵盖了文件操作、进程管理、线程管理、信号处理、同步机制…...
Boringssl介绍
BoringSSL 是 Google 从 OpenSSL 分支出来的一个开源 TLS/SSL 库,旨在为 Google 的产品和服务提供一个更加轻量、安全和现代化的加密库。它是 OpenSSL 的一个替代品,专注于简化代码、提高安全性和减少潜在的攻击面。 以下是对 BoringSSL 的详细介绍&…...
react实例与总结(二)
目录 一、脚手架基础语法(16~17) 1.1、hello react 1.2、组件样式隔离(样式模块化) 1.3、react插件 二、React Router v5 2.1、react-router-dom相关API 2.1.1、内置组件 2.1.1.1、BrowserRouter 2.1.1.2、HashRouter 2.1.1.3、Route 2.1.1.4、Redirect 2.1.1.5、L…...
僵尸进程、孤儿进程
一、僵尸进程、孤儿进程 僵尸进程、孤儿进程 1、僵尸进程: (1)定义:子进程死了(内存、打开的文件等都释放了),但没有完全死(数据结构<包含进程ID,进程状态、运行时…...
快速入门Springboot+vue——MybatisPlus多表查询及分页查询
学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:7.MybatisPlus多表查询及分页查询_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 多表查询 多表查询[Mybatis中的]:实现复杂关系映射,可以使…...
redis解决高并发看门狗策略
当一个业务执行时间超过自己设定的锁释放时间,那么会导致有其他线程进入,从而抢到同一个票,所有需要使用看门狗策略,其实就是开一个守护线程,让守护线程去监控key,如果到时间了还未结束,就会将这个key重新s…...
深入解析 MySQL 8 C++ 源码:二级索引回表操作
在数据库系统中,索引是优化查询性能的关键技术之一。MySQL 的 InnoDB 存储引擎支持多种索引类型,其中二级索引(非聚簇索引)和聚簇索引(主键索引)是最常见的两种。然而,由于二级索引的叶子节点只…...
MySQL如何解决幻读?
目录 一、什么是幻读? 1.1 幻读的定义 1.2 幻读的示例 1.3 幻读产生的原因? 1.4?读已提交(Read Committed) 1.4.1 确定事务等级 1.4.2 非锁定读取 准备 示例 结论 1.4.3 锁定读取 准备 示例 分析 结论 1.5?可重…...
RabbitMQ的脑裂(网络分区)问题
问题描述: Mnesia reports that this RabbitMQ cluster has experienced a network partition. There is a risk of losing data 一、什么是MQ脑裂? 网络分区 如果另一个节点在一段时间内(默认为 60 秒)无法与其联系࿰…...
【网络安全 | 漏洞挖掘】价值$40000:从路径遍历升级至RCE
未经许可,不得转载。 文章目录 路径遍历RCE路径遍历 在进行目标侦查和端口扫描时,我发现了一个使用 8443 端口的子域名:http://admin.target.com:8443。许多人可能会忽略返回 404 的子域名,但我并没有。 对 http://admin.target.com:8443/FUZZ 进行模糊测试时,我发现了一…...
程函方程的详细推导
以下是基于非均匀介质弹性波方程(无纵波假设)推导程函方程的详细过程,完整考虑纵波(P 波)和横波(S 波)的耦合效应:...
AD(Altium Designer)三种方法导入图片
目录 1、脚本方式导入图片 1.1 准备脚本文件和导入图片 1.2 运行脚本 1.3 导入文件 1.4 选中文件 2.5 运行 2.6 导入图片 2.7 选择图片 2.8 转换 2.9 退出 2.10 联合 2.11 确认 2.12 调整大小 2.13 复制 2.14 粘贴 2、图片直接导入图片 2.1点击放置 2.2 图片…...
fpga助教面试题
第一题 module sfp_pwm( input wire clk, //clk is 200M input wire rst_n, input wire clk_10M_i, input wire PPS_i, output reg pwm ) reg [6:0] cunt ;always (posedge clk ) beginif(!rst_n)cunt<0;else if(cunt19) //200M是10M的20倍cunt<0;elsecunt<cunt1;…...