MATLAB——知识点备忘

最近在攻略ADC建模相关方面,由好多零碎的知识点,这里写个备忘录。

Matlab 判断一个数是否为整数

1. isinteger 函数

MATLAB中,可以使用 isinteger 函数来判断一个数是否为整数,例如:要判断x是否为整数可以采用以下代码

if isinteger(x)
    disp('x是整数')
else
    disp('x不是整数')
end

2. fix 或者 round 函数

 通过对变量x取整,然后再和原值对比,判断取整后的结果,如果等于原值,则为整数。

if x==fix(x)
    disp('x为整数')
end

if x==round(x)
    disp('x为整数')
end

3. rem 函数

用求余函数 rem(x, 1) 来求,返回值0就是整数,返回值非0就是非整数

if rem(x, 1)==0
    disp('x为整数')
end

Matlab 判断一个数的数据类型

        在Matlab中,可以使用 class 函数来判断变量的数据类型。该函数返回变量的数据类型名称。例如,class(var) 可以给出变量var的数据类型。另外,还可以使用 isa 函数来判断一个变量是否属于某个特定的类别。该函数返回一个逻辑值,如果变量属于指定的类别,则返回1表示"真”,否则返回0表示“假”。在代码中,可以使用 class函数isa函数 来进行数据类型的判断和比较。

如何用matlab计算二进制加法

方法一:

Q:  比如两个二进制数,0010+1100=?
      如何matlab实现?
A:  二进制也好十进制也好都是一种表现形式,数据实际的值是不会因为你使用二进制还是十进制变化的
        其实正如上面的问答所说,进制不过是相互转换,加减法是与进制无关的。我们只需要知道加法、减法和乘2这类运算对于硬件来说比较简单就行了。在matlab仿真如果还需要先转化为二进制再计算,就绕远路了。
        例如要计算0010 + 1100,可以直接在matlab计算 2 + 12,再把结果14转化为二进制数即可。

方法二:

Matlab Case 语句

      单个的就如同C语言中的一样,不过在和switch使用的时候case后不用接 “:”

n = input('Enter a number: ');
 
switch n
    case -1
        disp('negative one')
    case 0
        disp('zero')
    case 1
        disp('positive one')
    otherwise
        disp('other value')
end

Matlab 通过整除判断倍数

      可通过 fix 截尾取整进行判断,示例:判断一个数是否为5 的倍数

m=12;
if fix(m/5)==m/5
% 如果是5 的倍数,则输出为1
end

Matlab 计算倍数

        在Matlab中,可以通过使用趋于运算符(mod)来计算一个数是否是另一个数的倍数。如果一个数a是另一个数b的倍数,则 mod(b,a)==0
        例如,要判断一个数×是否是3的倍数,可以使用以下代码:

X=15; % 要判断的数
multiple=3; % 倍数

if mod(x,multiple) == 0
    disp('x是multiple的倍数');
else
    disp('x不是multiple的倍数');
end

Matlab 中计算最小公倍数

        Matlab中计算最小公倍数的函数是 lcm ,使用方法如下:

lcm(x,y);

% 示例代码
lcm(6,8) % 输出结果为 6和8的最小公倍数 24

        其中,x 和 y 是要计算最小公倍数的两个数。

Matlab 在工作区显示函数内的变量

        在通常情况下,matlab的工作区中不会显示函数内的变量。

方法一:以函数输出的形式定义希望输出的变量:
        这里的A、B、C 可以定义为结构体,好更方便的输出更多的变量。

function [A, B, C] = fucntion_name(D, E, F)
% 这里的A B C 可以定义为结构体,好更方便的输出更多的变量

方法二:使用 save  load 函数,具体方法为:
        这里会将 变量 保存在 文件名.mat 文件里,可省略 变量名 ,这样可以将当前所有变量存在 文件名.mat 文件里,load 时也可以省略 文件名。

save 变量名 文件名 

load('文件名.mat', 变量名)

方法三:使用断点:

        可以在子程序内部设置断点,然后开始运行,当停在子程序时workspace即显示子程序变量。按F10即可进行单步调试。        

Matlab 控制数值精度(保留有效数字,小数点后几位)

方法一:vpa 函数 
        控制有效数数字位数:

digits(5); %定义精度
a=vpa(sqrt(2)); %a=1.4142

% 或者单独使用 vpa
a=vpa(sqrt(2),5); %a=1.4142

方法二:roundn 函数
        可以用来控制小数点前后多少位,负数表示小数点后,正数表示小数点前。
        注意与 round 的区别。round 表示把小数往最接近的整数取整

a=roundn(sqrt(2),-4); %a=1.4142

Matlab 结构体的创建和使用

        对于有C语言基础的使用者,结构体这个词你可能很熟悉。
        与元胞(cell)类型一样,结构体也可以存储任意类型的数据。当然,它们也存在许多不同点。最大的不同点是,结构体是以不同名字的字段作为存储容器,每个字段都可以存储任意类型的数据。此外,若要构建结构体数组,则要求每个结构体的字段数目和字段名字必须相同。下面将讲述结构体数组,单个结构体也视为1x1的结构体数组。
1. 结构体的创建
       
接直接定义字段,对 结构体变量名.字段名 赋值(字段的命名规则和变量一样),并且像使用一般 Matlab 变量一样,不需要事先声明,支持动态扩充

% 单个结构体
Student.name = 'wangx';
Student.sex = 'Male';
Student.height = '170';

% 多个结构体
Student(2).name = 'zhangsan';
Student(2).sex = 'Male';
Student(2).height = 172;

        或者使用函数 struct() 创建。调用格式struct(name1,data1,name2,data2....),注意这里的数据要用大括号括起来
        node = struct('name', {'xiezhh', 'heping'}, 'age',{31, 22})
        node(1).name

% 1x1的结构体数组
s1 = struct;            % 不含字段
s2 = struct('name', '李四', 'gender', 'male');
 
% 1x2的结构体数组
s3 = struct('name', {'张三', '李四'}, 'gender', 'male');    % 通过元胞数组,来创建多结构体的结构体数组
s3
s3_1 = s3(1)
s3_2 = s3(2)

代码运行结果如下。注:函数的字段参数不能重复。因此,若要创建多结构体的结构体数组,必须使用元胞数组。

2. 结构体数组的访问
        结构体数组的访问很简单。这里不展示代码,以文字叙述。

  • 访问结构体数组中某个结构体的某个字段:先对结构体数组进行索引,得到待访问的结构体。再通过待访问的结构体.字段名获取该结构体的该字段的数据。此外,如果该字段的数据是一个数组,还可以对该数组进一步索引。
  • 访问结构体数组中所有结构体的某个字段:直接通过 结构体数组.字段名,结果相当于一个逗号间隔的式子:结构体1.字段名, 结构体2.字段名, 结构体3.字段名 ...

3. 结构体数组的拼接

结构体数组的拼接也很简单,和其它类型的拼接是一样的,这里不展示代码,只叙述它要遵循的纬度规则。

  • 水平拼接:待拼接的结构体数组的行数相等。
  • 垂直拼接:待拼接的结构体数组的列数相等。

4. 结构体数组的操作函数

有很多函数可以作用于结构体数组,下面举几个常用函数的简单用法。

  • isfield(),判断输入的字段是否为输入结构体数组的字段。
  • rmfield(),删除结构体中的字段。
% 1x3的结构体数组
s = struct('name', {'张三', '李四', '王二麻子'}, 'gender', 'male', 'age', {18, 20, 'unknown'});
 
% 函数isfield()
fieldStatus = isfield(s, {'name', 'gender'})
 
% 函数rmfield()
s_new = rmfield(s, {'name', 'gender'})
s

代码运行结果如下。

Matlab 多个10进制数转成指定位宽的2进制矩阵

        可以使用以下方法将Dec中的十进制数,转换为二进制数组

Dec = 4
Bar = dec2bin(Dec, Nbit)  % Bar='100'
for i = 1:length(Bar)
    D(i) = str2num(Bar);  % D = [1 0 0]
end

Matlab 实现二进制运算

        在MATLAB中进行二进制运算,可以使用位运算符,包括按位与(&)、按位或()、按位异或()、按位取反(~)以及左移(<<)和右移(>>)。
        例如,对两个二进制数进行按位与运算,可以使用以下代码:

a = bin2dec('1010');%将二进制数转换为十进制
b = bin2dec('1100');
result=bitand(a,b); % 按拉与运算
dec2bin(result) %为将十进制结果转换为二进制

        输出结果为:

result = 8;ans = 1000

        其中,bin2dec 函数将二进制转换为十进制数,bitand 函数执行按位与运算,dec2bin 函数将十进制转换为二进制数。

        Matlab可以进行二进制运算,可以使用bitand、bitor、bitxor、bitcmp等函数进行按位与、按位或、按位异或和按位取反等操作。此外,还可以使用dec2bin和bin2dec函数进行十进制和二进制之间的转换。如果需要产生伪随机二进制序列,可以使用randn函数和逻辑运算符进行操作。如果需要进行二进制加法,可以使用类似于全加器的方法进行多位二进制加法器的设计。

Matlab 有符号十进制转二进制 matlab

        matlab 调用 dec2bin() 函数,传入负数就报错,做个笔记吧——新版Matlab已解决

% 当数字a大于0的时候,直接调用函数
bin = dec2bin( a, 8 );  		% 8 是指变成8位的二进制数,例如 a = 3 ,则 bin 就是 0000_0011

% 当数字a小于0的时候
bin = dec2bin( a + 2^8 , 8 ); 	% 8 还是8位的意思,比如 a = -3 ,则 bin 就是 1111_1101 

% 操作一个一维数组的时候就可以这样来
% =====  array 是一个一维数组  ===== %
for i = 1 :length(array )
    if(array (i) <0)
        array (i) = array (i) + 2^8;
    end
end

ans = dec2bin(array , 8 ); 		%这个函数 可以直接把数组作为参数输入

% 例子里面的 8 是指位数,如果需要转化成16位的,就把 所有的 8 换成 16 !

        dec2bin() 函数会把大于0的整数转换成指定位数的二进制字符串,比如把十进制的 3 转化成 8位的二进制就是:0000_0011 ;
        小于0的数转化成二进制,应该是转化成对应正整数的补码( 按位取反 再 + 1),比如3的8位的按位取反就是:1111_1100 ; 为什么要 + 1呢?如果不 + 1,那么 0000_0011 + 1111_1100 就会得到 1111_1111 ,给他加个 1 就变成了 1_0000_0000 ,如果指定了 8 位 ,那么就会直接抛弃第一个1 ,结果就是 0000_0000 ,所以这样 按位取反 再 +1 的操作就是为了对应 3 + (-3) = = 0 这样的计算结果。
        有了上面的基础,就可以着手准备利用好dec2bin()函数了;思路就是 把负数 a 的补码( 绝对值的按位取反 再 + 1),对应的 十进制 的 整数 b 找到,完了dec2bin(b , 8);有点绕啊,还是举例子,-3 的 补码是 1111_1101,这个字符串对应的十进制就是 253 ; 而 -3 + 2^ 8 == 253;

 power(2,0) + power(2,2)++ power(2,3)+ power(2,4)+ power(2,5)+ power(2,6)+ power(2,7) == 253

结论:

正数:直接 dec2bin();
负数:先给负数 加一个 2^n ,然后再用 dec2bin();

Matlab 满足条件后不再向下执行的语句

        在编写Matlab程序过程中,有时会遇到当程序运行到不满足if条件时让程序跳出,停止运行的情况,在MATLAB中,使用 return 语句实现程序跳出。

a = 1;                  % 定义一个变量a
flag = 1;              % 定义一个标准量 
if 1
    if flag == a       %判断a与flag是否相等 
        disp('0');    %如果相等,命令行打印0
        return;       %不再向下执行 
        disp('1');    %return 后的语句不执行
    else 
        disp('2');    %如果不相等,命令行打印2
    end
else
    disp('3');        %外层if对应的else,命令行打印3,
end
disp('4');            %命令行打印4

        程序运行后,命令行窗口打印0,可以证明在程序执行return后,以后的程序都不运行。
        只将以上程序中变量a的值变为0,程序运行后,命令行窗口打印2,4。
        只将以上程序中第一个if后的1变为0,程序运行后,命令行窗口打印3,4。
        以上程序则可以清楚的验证,执行了return语句后,程序不再运行下去。

Matlab 中的continue、break、return和 error 语句

Continue:
        经常用在for和while语句中,continue一旦被执行,就会终止当前循环,进行下一次循环。

% eg, 在for 循环中:
clc
clear all
close all

i = 1;
COND  = 1;

for i = 1:20
    if mod(i,2)==0
        continue
    else
    
    fprintf('the array is %d\n',i)
    end
end

% 结果是:
the array is 1
the array is 3
the array is 5
the array is 7
the array is 9
the array is 11
the array is 13
the array is 15
the array is 17
the array is 19

% 我们跳过了能够被2整除的数字,找出了剩下的数字
% eg:在while循环中

clc
clear all
close all

i = 1;
COND  = 1;

while COND ==1
    
   if mod(i,2)==0
       i = i+1;
        continue;
   else
    fprintf('the array is %d\n',i)
   end
   
   if i>=19
       COND = 2;
   end
    i = i+1;
end

% 这里可以看到,我们在符合while条件下的循环中,如果被2整除了,
% 那么就会跳过这个循环,直接进到下一个while循环下,从头开始执行。
% 再一次进入if 判断新的i是否满足整除要求。
% 结果如下:
the array is 1
the array is 3
the array is 5
the array is 7
the array is 9
the array is 11
the array is 13
the array is 15
the array is 17
the array is 19

break
        break和continue用法相似,区别在于,一旦执行了break, 就会推出循环,而不是进入下一个循环。在for循环中:我们在1:10中,到一个被3整除的,一旦找到了第一个,整个for循环就不会再执行了。但是要注意,只是不执行break所在的循环,其他的循环还是要执行的。

return:
        return 跳出函数,返回调用函数处。无论是while还是for,直接跳出函数,返回到调用函数之前。

%%
clc
clear all
close all

i = 1;
COND  = 1;

for i = 1:20
    if mod(i,2)==0
        return
    else
    
    fprintf('the array is %d\n',i)
    end
end
%%
clc
clear all
close all

i = 1;
COND  = 1;

while COND ==1
    
   if mod(i,2)==0
       i = i+1;
       return;
   else
    fprintf('the array is %d\n',i)
   end
   
   if i>=19
       COND = 2;
   end
    i = i+1;
end

% 执行这两段函数都是一个结果:
the array is 1
>> 

% 当i = 2时,函数就跳出了

        用一个更简单的例子说明,我们有一个很多层的if else 判断语句,这个时候用return 就很好,如果符合条件就可以直接跳出多层if else语句,而不需要把所有的if else 全部执行一遍再跳出。

clc
clear all
close all
flag = 20 ;
if flag <-10
      fprintf('y<-10\n')
      return
elseif flag >20
    fprintf('y>20\n')
    return
elseif flag >=-10 && flag <20
     fprintf('-10<=y<20\n')
     return
else fprintf('y=20\n')
     return
end
% 总结来说:
break       跳出循环;
continue    继续循环,(不执行 循环体内continue 后面的语句,直接进行下一循环)
return      跳出函数,返回调用函数 处。

信号延迟仿真的 Matlab 源码实现

        信号的延迟是数字信号处理中的一个重要概念,将介绍如何使用Matlab实现信号的延迟仿真,并给出相应的源代码实现。
        首先,我们需要定义一个信号并进行时域分析。在Matlab中,我们可以使用 "t=linspace(0,1,fs)" 生成一个时间轴,其中fs表示采样率,然后根据需要定义一个正弦波信号,如"x=si(2*pi*f*t)"表示频率为f的正弦波信号。
        接着,我们可以通过对信号进行时间延迟来模拟信号的传输过程。在Matlab中,我们可以使用”y=[zeros(1,delay),(1:end-delay)]”将信号向右移动delay个单位。其中,y表示延迟后的信号,x表示原始信号,zeros(1,delay)表示在x前面填充delay个零元素,(1:end-delay)表示去除x后面的delay个元素。
        最后,我们可以将延迟后的信号与原信号进行比较,从而验证延迟是否成功。在Matlab中,我们可以使用"plot(t,X,t,y)”将两个信号绘制在同一张图上,从而直观地比较它们的差异。
        下面是完整的Matlab源代码实现:

%% 信号延迟仿真

% 定义信号
fs = 1000; % 采样率
f = 10; % 频率
t = linspace(0, 1, fs); % 时间轴
x = sin(2 * pi * f * t); % 正弦波信号

% 模拟信号延迟
delay = 0.5 * fs; % 延迟时间
y = [zeros(1, delay), x(1:end-delay)]; % 延迟后的信号

% 绘制信号图像
figure;
subplot(2,1,1);
plot(t, x);
xlabel('time');
ylabel('Amplitude');
title('Original Signal');

subplot(2,1,2);
plot(t, y);
xlabel('time');
ylabel('Amplitude');
title('Delayed Signal');

Verilog实现任意时钟周期延时的方法

方法一:非阻塞赋值延时打拍

        这个方法是最简单的实现延时的方法,缺点是如果延时的周期比较长的话,要写的东西也会变得很多,通过这种方式可以把信号延时n个周期。

always @ (posedge clk) begin
     d1 <= d;
     d2 <= d1;
     .......
     dout <= dn;
end

方法二:移位寄存器延时

        这个方法也比较简单,实现起来也很容易,缺点是消耗的资源比较大

//延时N个时钟周期
parameter N=4;
reg [N-1:0] temp;
 
always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
	    temp <= 0;
        end
    else if(in1) begin
        temp[N-1:0] <= {temp[N-2:0],in1};
    end
    else begin
        temp[N-1:0] <= {temp[N-2:0],1'b0};
    end
end
assign out1 = temp[N-1];

方法三:计数器实现任意周期延时

        该方法较为节省资源,能实现任意周期的延时

parameter delay_per = 8'h4;//延时周期数
reg flag;
reg [7:0] delay_count;
always @(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
        flag <= 0;
        end
    else if(in1)begin
        flag <= 1;
        end
    else if(delay_count == delay_per)begin
        flag <= 0;
        end
end
always @(posedge clk or negedge rst_n) begin
    if(!rst_n)begin
        delay_count <= 0;
        out1 <= 0;
        end
    else if(delay_count == delay_per && flag == 1'b1)begin
        delay_count <= 0;
        out1 <= 1;
        end
    else if(flag == 1'b1)begin
        delay_count <= delay_count + 1'b1;
        out1 <= 0;
        end
    else begin
        delay_count <= 0;
        out1 <= 0;
    end
end

        介绍了三种实现信号周期延时的方法,但需要注意的是,在方法三中,如果信号间隔的周期数小于延时的周期,这种方法就不太合适了。此时推荐使用方法二,或者使用FIFO来实现信号延时。

% =========== 未完待续 ===========

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518869.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DXP实验3-单片机时钟显示系统的层次原理图设计

目录 一&#xff0c;自上而下的子母图设计 1&#xff0c;绘制层次式电路母图 1)工程及原理图创建和保存 2)开始绘制层次式母图main.SchDoc 2&#xff0c;绘制图纸符号 1&#xff09;properties选项卡 2&#xff09;designator标号 3&#xff09;filename文件名 4&…

[WinForm开源]原神混池模拟器-蒙德篇:软件的基本介绍、使用方法、常见问题解决与代码开源

首先先和各位旅行者道个歉&#xff0c;混池都过去这么久了才把软件开发好并发布出来 >_< 创作目的&#xff1a;为给各位旅行者&#xff08;当然包括我自己&#xff09;估测混池抽取的出货率以及让各位旅行者可以过手瘾&#xff0c;故开发了此项目作为参考。 创作说明&am…

【C++】C++中的stack和queue

一、概述 本篇blog写明了介绍的是STL(标准模板库)中的stack和queue&#xff0c;栈和队列虽然在处理数据的方式上有明显的不同&#xff0c;但它们作为操作受限的线性数据结构&#xff0c;在学习和应用中经常被放在一起讨论&#xff0c;以便更全面地理解数据结构的概念和使用。 在…

VMware ESXi 6.7

1.浏览器中输入地址&#xff0c;进入管理界面 2.选择 存储 右击浏览&#xff0c;创建新的目录 3.点击 上载 &#xff0c;选择镜像文件 4.等待上载完成 5.点击 虚拟机-新建虚拟机 6.进入新建虚拟机界面 7.进入Windows安装界面 8.安装VMware Tools

AI头像背景替换多功能图片编辑器

本软件运用AI技术&#xff0c;可以轻松修改人像衣着外观与背景环境&#xff0c;支持图片延伸功能&#xff0c;还原度自然。同时也支持扣图及替换背景&#xff0c;图像特效处理和动画渲染等功能&#xff0c;是很推荐的一款图像处理软件。 软件介绍&#xff1a; 它是一款…

归并排序详解(非递归)

感谢各位大佬的光临&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 收入专栏&#xff1a;http://t.csdnimg.cn/LJ2J2 文章目录 前言一.归并排序二.代码实现归并排序&#xff08;递…

【6】单向循环链表

【6】单向循环链表 1、单向循环链表2、add(int index, E element)3、删除 1、单向循环链表 &#x1f58a; 在单向链表的基础上&#xff0c;尾节点的 next 指向头节点 2、add(int index, E element) &#x1f58a; 往尾部添加的代码不用修改&#xff08;和单向链表一样的&am…

华为ensp中基本acl 原理及配置命令(详解)

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月5日10点45分 基本ACL的简介 华为ensp中的基本acl是指华为设备中用于控制网络访问的访问控制列表的其中一种类型。基本acl可以根据数据包的源IP地址进行过滤&#…

备战蓝桥杯---多路归并与归并排序刷题

话不多说&#xff0c;直接看题 1. 我们考虑一行一行合并&#xff0c;一共m次&#xff0c;我们合并两个并取前n小&#xff0c;那么我们怎么取&#xff1f; 我们采用分组的思想&#xff1a; 我们选第一列的min,然后把后面那个再纳入考虑&#xff0c;用优先队列实现即可。 下面…

今年考研是太卷了还是太水了,为什么分数线都高的离谱?

25考研的备考形势&#xff0c;势必跟以前不一样了&#xff01; 有些人问&#xff0c;分数线那么高&#xff0c;是不是题目太水了&#xff1f; 问的人肯定不是24考生。 24的题&#xff0c;也就政治正常一点。 其它的&#xff0c;英语难上热搜&#xff0c;数学难度空前&#x…

04---webpack编写可维护的构建配置

01 构建配置抽离成npm包&#xff1b; 意义&#xff1a;通用性&#xff1a; 业务开发者无需关注构建配置 统一团队构建脚本可维护性&#xff1a;构建配置合理的拆分 质量&#xff1a;冒烟测试 单元测试 持续集成构建配置管理的可选方案&#xff1a;1 通过多个配置文件管理不同…

一、OpenCV(C#版本)环境搭建

一、Visual Studio 创建新项目 二、选择Windows窗体应用&#xff08;.NET Framework&#xff09; 直接搜索模板&#xff1a;Windows窗体应用(.NET Framework) 记得是C#哈&#xff0c;别整成VB(Visual Basic)了 PS&#xff1a;若搜索搜不到&#xff0c;直接点击安装多个工具和…

【OJ】动规练习七之【模板】01背包

个人主页 &#xff1a; zxctscl 如有转载请先通知 DP41 【模板】01背包 1. DP41 【模板】01背包2. 分析3. 代码4. 优化5. 优化后代码 1. DP41 【模板】01背包 2. 分析 一、题目解析&#xff1a; 来看一下例1&#xff0c;3代表有三个物品&#xff0c;5代表能够容纳的体积。第一…

VGA 多分辨率

REVIEW VGA 时序与实现-CSDN博客 对于不同分辨率&#xff0c;每次使用都去查表比较麻烦&#xff1b; 学习条件编译的使用&#xff0c;减轻后续调用的麻烦。 1. 条件编译格式 条件编译是当设计中满足某个条件时&#xff0c;将该条件下的一段代码编译进设计中。 因此&#xff0…

C++ 类和对象(初篇)

类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式&#xff1a; class className {// 类体&#xff1a;由成员函…

AI绘图:Stable Diffusion ComfyUI局部重绘与智能扩图全面教程

前言 在数字艺术创作中&#xff0c;局部重绘和智能扩图是两个非常重要的功能。局部重绘允许我们在保留原有图像的基础上&#xff0c;对特定区域进行修改或创新。而智能扩图则能够帮助我们在图像的边缘添加新的元素&#xff0c;从而扩展图像的内容。本文将详细介绍如何在Stable…

深度学习pytorch好用网站分享

深度学习在线实验室Featurizehttps://featurize.cn/而且这个网站里面还有一些学习教程 免费好用 如何使用 PyTorch 进行图像分类https://featurize.cn/notebooks/5a36fa40-490e-4664-bf98-aa5ad7b2fc2f

jforgame-doctor快速入门

背景 游戏热更新,是指在不重启服务器/客户端app的情况下,对游戏内容进行修改或者对代码bug进行修复。 对于一个上线产品项目来说,热更新为维持项目的稳定健康提供了坚强的保障。小到策划数据的修改,代码bug的修改,大到动态扩展游戏业务功能。试想一下,没有热更新机制,…

基于SSM的邮票鉴赏系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的邮票鉴赏系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…

电脑硬盘分区表的两种格式:MBR 和 GPT

电脑硬盘分区表的两种格式&#xff1a;MBR 和 GPT 段子手168 2024-4-5 电脑硬盘分区表有两种格式&#xff1a;MBR 和 GPT&#xff1a; 一、MBR 分区表 1.MBR 是主引导记录 (Master Boot Record) 的英文缩写 在传统&#xff08;Legacy&#xff09;硬盘分区模式中&#xff0c…