当前位置: 首页 > article >正文

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],则生成的多项式为1x^{3}+2x^{2}+3x+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&lt;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安装参考&#xff1a;抖音-记录美好生活 MATLAB基础知识学习参考&#xff1a;【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分&#xff1a;变量定义和基本运算 生成矩阵&#xff1a; % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…...

DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑

DeepSeek作为一款前沿的人工智能大模型&#xff0c;凭借其强大的多模态理解、知识推理和内容生成能力&#xff0c;正在重构文旅产业的发展逻辑&#xff0c;推动行业从传统的经验驱动向数据驱动、从人力密集型向智能协同型转变。 一、智能服务重构&#xff1a;打造全域感知的智…...

蓝桥与力扣刷题(蓝桥 交换瓶子)

题目&#xff1a;有 N 个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有 5 个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起 2 个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#x…...

腿足机器人之十一- 深度强化学习

腿足机器人之十一- 深度强化学习 机器人能力腿足机器人RL问题建模强化学习解决方案 强化学习算法库选择建议 深度学习技术已经在语音、图像、视频、文本等领域应用广泛&#xff0c;其和强化学习的结合使得基于深度学习的大模型能力更是上升一个台阶。因而用在腿足机器人的运动中…...

纠错检索增广生成论文

一、摘要 动机&#xff1a;RAG严重依赖于检索文档的相关性&#xff0c;如果检索出错&#xff0c;那么LLM的输出结果也会出现问题 解决方案&#xff1a;提出纠正性检索增强生成&#xff08;CRAG&#xff09;即设计一个轻量级的检索评估器&#xff0c;用来评估针对某个查询检索…...

多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题

多源 BFS 是一种解决 边权为 1 的多源最短路问题 的高效算法。其核心思想是将所有源点视为一个“超级源点”&#xff0c;通过一次 BFS 遍历即可计算所有节点到最近源点的最短距离。以下从原理、实现和代码示例三个方面深入讲解&#xff1a; 目录 一、原理分析 1. 单源 BFS vs…...

Jenkins 构建 Unity 打包 .apk 同时生成 .aab

Jenkins 构建 Unity 打包 .apk 同时生成 .aab Android App Bundle简称 AAB&#xff0c;想了解更多关于 AAB 的知识&#xff0c;请看官网 https://developer.android.google.cn/guide/app-bundle/faq?hlzh-cn APK 打包部分在复用上一篇 Jenkins 构建 Unity打包APK 一、新建一…...

LTO优化详解

嵌入式开发过程中的LTO优化是什么意思&#xff1f;能够用来解决什么问题&#xff1f;它都优化了哪些&#xff1f;仅开启LTO真的可以优化SIZE的问题吗? 请分别回答我刚才提到的问题&#xff1f; 嗯&#xff0c;用户问关于嵌入式开发中的LTO优化&#xff0c;我需要详细解释这个概…...

嵌入式之条件编译

在C编程中&#xff0c;条件编译是一种在编译时根据特定条件选择性地包含或排除代码的技术。它通过预处理器指令来实现&#xff0c;允许程序员根据不同的编译环境、平台或配置来控制哪些代码被编译。条件编译在跨平台开发、调试、功能开关场景中非常有用。 1. 预处理器指令 条…...

清华大学第五弹:《DeepSeek与AI幻觉》

作者&#xff1a;清华大学新闻与传播学院新媒体研究中心、人工智能学院&#xff08;新媒沈阳团队&#xff09; 时间&#xff1a;2025年2月 完整版下载地址&#xff1a;夸克网盘分享 一、AI幻觉的定义与分类 定义 学术定义&#xff1a;模型生成与事实不符、逻辑断裂或脱离上下…...

理解构件的3种分类方法

对于Java程序员来说&#xff0c;理解“构件分类方法”是非常重要的&#xff0c;因为这直接关系到如何高效地管理和复用软件组件。以下是针对三种常见分类方法的具体解释&#xff1a; 构件的3种分类方法 1. 关键字分类法 (Keyword Classification Method) 关键字分类法是最直…...

分布式数据库解析

title: 分布式数据库解析 date: 2025/2/20 updated: 2025/2/20 author: cmdragon excerpt: 通过金融交易、社交平台、物联网等9大真实场景,结合Google Spanner跨洲事务、DynamoDB毫秒级扩展等38个生产级案例,揭示分布式数据库的核心原理与工程实践。内容涵盖CAP定理的动态…...

Zotero 快速参考文献导出(特定期刊引用)

目录 一、添加样式 每次投期刊时每种期刊的引用方式不一样&#xff0c;就很麻烦。发现zeotero添加期刊模板再导入很方便 一、添加样式 然后就能导出自己想要的期刊格式的引用了...

库的制作与原理(一)

1.库的概念 库是写好的&#xff0c;现成的可以复用的代码。本质上库是一种可执行的二进制形式&#xff0c;可以被操作系统载入内存执行。库有俩种&#xff1a;静态库 .a[Linux] .lib[windows] 动态库 .so[Linux] .dll[windows] 就是把.c文件变成.o文件&#xff0c;把…...

go 日志框架

内置log import ("log""os" )func main() {// 设置loglog.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)// 自定义日志前缀log.SetPrefix("[pprof]")log.Println("main ..")// 如果用format就用PrintF&#xff0c;而不是…...

JavaScript 最佳实践

我只选取了我还没完全贯彻的条目罗列如下. 1.函数命名 函数名由动词开头,如getName(); 2.布尔类型命名 若函数返回布尔值,则函数名以is/can等开头. 3.常量命名约定 常量名全大写并以下划线""连接. 4.变量类型透明化 定义变量时,应将其立即初使化为一个与其同类型…...

Rust配置笔记

1.Node.js下载配置 2.c环境配置 C我是用vs装的点击这个installer 点击修改 选择C环境就行,这个时候它就帮忙配置环境了 3.Rust下载配置 4.装napi-rs框架 npm install -g napi-rs/cliRust下载网站 下完之后直接打开 一开始下包会比较慢,多等等 下好之后跑项目前第一件事配置…...

大模型WebUI:Gradio全解12——LangChain原理及agents构建Gradio UI(1)

大模型WebUI:Gradio全解12——LangChain原理及agents构建Gradio UI(1) 前言本篇摘要12. LangChain原理及其agent构建Gradio UI12.1 LangChain介绍12.1.1 概念12.1.2 用途12.1.3 文档参考文献前言 本系列文章主要介绍WEB界面工具Gradio。Gradio是Hugging Face发布的简易WebU…...

具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)

整合各亚专科医学领域知识能力的AI代理的开发与研究 一、引言 1.1 研究背景 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量,医疗领域也不例外。近年来,AI 在医疗行业的应用取得了显著进展,从医学影像诊断到疾病预测,从药物研发到个性化医疗,AI 技…...

机器学习在脑卒中预测中的应用:不平衡数据集处理方法详解

机器学习在脑卒中预测中的应用:不平衡数据集处理方法详解 目录 引言 脑卒中的全球影响机器学习在医疗预测中的挑战类别不平衡问题的核心痛点数据预处理与特征选择 数据来源与清洗缺失值处理方法类别特征编码特征选择技术处理类别不平衡的四大方法 SMOTE(合成少数类过采样技术…...

数据表的存储过程和函数介绍

文章目录 一、概述二、创建存储过程三、在创建过程中使用变量四、光标的使用五、流程控制的使用六、查看和删除存储过程 一、概述 存储过程和函数是在数据库中定义的一些SQL语句的集合&#xff0c;然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可…...

为AI聊天工具添加一个知识系统 之117 详细设计之58 思维导图及观察者效应 之2 概念全景图

&#xff08;说明&#xff1a;本文和上一篇问题基本相同&#xff0c;但换了一个模型 deepseek-r1&#xff09; Q1227、在提出项目“为使用AI聊天工具的聊天者加挂一个专属的知识系统”后&#xff0c;我们已经进行了了大量的讨论-持续了近三个月了。这些讨论整体淋漓尽致体现了…...

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息&#xff1a; 【报错】Message.js 导入方式不对&#xff0c;用的是 ES Moudle 的语法&#xff0c;提示使用 import 引入文件 项目开发没有用到 js-message 依赖&#xff0c;是 node-ipc 依赖中用到的 js-message 依赖&#xff0c; node-ipc 中限制 js-message 版本&a…...

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started &#xff0c;尝试过使用git clone 的方式&#xff0c;但速度贼慢&#xff0c;就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…...

从CNN到Transformer:遥感影像目标检测的未来趋势

文章目录 前言专题一、深度卷积网络知识专题二、PyTorch应用与实践&#xff08;遥感图像场景分类&#xff09;专题三、卷积神经网络实践与遥感影像目标检测专题四、卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】专题五、Transformer与遥感影像目标检测专题六、Transfo…...

从 x86 到 ARM64:CPU 架构的进化与未来

在计算机发展的历史长河中&#xff0c;x86、x64 和 ARM64 这三大主流 CPU 架构各自书写了辉煌的篇章。它们不仅代表了技术的进步&#xff0c;更承载着无数创新者的梦想与努力。 x86&#xff1a;从 16 位到 32 位的辉煌之路 诞生与崛起 1978 年&#xff0c;英特尔&#xff08;…...

Java数据结构第十二期:走进二叉树的奇妙世界(一)

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 目录 一、树型结构 1.1. 树的定义 1.2. 树的基本概念 1.3. 树的表示形式 二、二叉树 2.1. 概念 2.2. 两种特殊的二叉树 2.3. 二叉树的性质 2.4. 二叉树的存储 三、二叉树的基本操作 一、树型结构 1.…...

基于ffmpeg+openGL ES实现的视频编辑工具-添加贴纸(八)

在当下丰富多元的音视频编辑应用领域,添加贴纸已然成为一项广受欢迎的功能,它能够为音视频作品注入独特的趣味与创意元素。本文将深入探究音视频添加贴纸背后所涉及的技术原理与实现路径。 一、技术原理概述 音视频从本质上来说,是由一系列连续的图像帧(针对视频部分)以…...

【AI时代】基于AnythingLLM+ Ollama + DeepSeek 搭建本地知识库

一、本地安装Ollama及DeepSeek 参考教程&#xff1a; https://blog.csdn.net/Bjxhub/article/details/145536134 二、下载并安装AnythingLLM AnythingLLM下载地址&#xff1a; https://anythingllm.com/ 傻瓜式安装即可 可以自定义安装路径。三、配置AnythingLLM并使用 3.…...

leetcode刷题记录(一百一十五)——64. 最小路径和

&#xff08;一&#xff09;问题描述 64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09;64. 最小路径和 - 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下…...