Matlab中global 和persistent的用法

1、persistent 用法

静态变量(persistent)

在函数中声明的变量,当函数调用完之后就会释放。如果想保留这个变量的值(供该函数下一次调用),可以把这个变量声明为静态变量。stateflow里面的变量和这个差不多
静态变量只能在function里声明,且只有这个function才能认识它(main函数也不行,被遮蔽无法使用)。静态变量不能在声明的时候赋值,x声明后是 [  ],  就是一个空的array。声明后需初始化,注意不能直接用persistent x=0;而是用isempty(x)判断x是否已经赋值。

2、代码演示
function y=persistentTest()

persistent x;

if isempty(x)
   x=0;
end
x = x + 1;
y  = x;

第一次运行这个脚本 y = 1,

第二次运行  y = 2;

....每次都会累加。

其值不会随着函数调用结束而消失。

其在simulink用法何在matlab脚本里面一样,都是在函数里面调用一次,比如
 

在这个matlab function里,循环里使用了静态变量,该整个模型的频率是25ms,也就是说,

对于整个系统,在每个25ms一次的模型中,每次循环的起始值,都是上次的保存值。

3、global 用法

全局变量(global)

matlab写代码时 ,对于一般的局部变量,如果有多个.m文件,且之间存在相互调用关系;每个.m文件中的变量,都为局部变量,都有自己的工作区域/Workspace,当函数调用结束之后,其变量的声明周期也就结束了(记住,变量的声明周期随着子函数的结束而结束)

如果定义了全局变量/global,则需要注意几点:

1、在每一个子函数/.m文件中,都需要先声明,然后再进行操作;

2、global/全局变量,只占一个workspace,即在某一个地方修改,同时在变量存在的地方全部修改;

3、定义多个global/全局变量方式为: global var1 var2 var3 ……;

4、去掉/消除某一个或多个全局变量方式为:clear var1 var2 var3……;

1、代码演示
function global_plot()
global X
X=0:0.1:2*pi;
plot_sin(2)
plot_cos(2)
function plot_sin(a)
global X
y=a*sin(X);
figure
plot(X,y)
 
function plot_cos(a)
global X   %使用全局变量X时,也要用global定义
X=-pi:0,1:pi; %全局变量被修改
y=a*cos(X);
figure
plot(X,y)

 2、结果

可以看到第一个函数plot_sin(2),其X = X=0:0.1:2*pi,其大小为1*63;

第二个函数plot_cos(2),其X=-pi:0,1:pi ,其值为1*7,分别为: -3.1416   -2.1416   -1.1416   -0.1416  1  2   3

### RAG模型概述 RAG(Retrieval-Augmented Generation)是一种融合了检索增强机制的生成型语言模型,由Facebook AI研究院(FAIR)提出。这种架构通过结合传统的基于检索的方法和现代的语言生成技术来提升自然语言处理任务的效果[^3]。 ### 工作原理详解 #### 数据获取阶段 在数据准备过程中,RAG利用外部知识库作为补充资源。当接收到输入查询时,系统首先会在预先构建的知识图谱或其他形式的大规模语料库中执行信息检索操作,找到最有可能帮助完成当前对话或任务的相关片段。 #### 动态上下文集成 不同于静态预训练模式下的纯生成方式,在线检索到的具体实例会被即时融入到解码器端口处,使得每次预测都能依据最新获得的真实世界证据来进行调整优化。这一特性赋予了RAG更强的情境适应能力,尤其是在面对开放领域问答、多轮次交互式聊天等复杂场景下表现尤为突出。 #### 双重评分机制 为了确保最终输出的质量,RAG采用了两步走策略:先是从候选集中挑选出若干高质量的回答选项;再经过一轮精细评估后决定最佳回复方案。具体来说就是分别计算每条建议得分——一方面考量它与原始请求之间的匹配度;另一方面也要顾及内部连贯性和逻辑一致性等因素。 ```python def rag_model_inference(query, knowledge_base): retrieved_docs = retrieve_relevant_documents(query, knowledge_base) generated_responses = [] for doc in retrieved_docs: response = generate_response_based_on_document(doc) generated_responses.append(response) best_response = select_best_response(generated_responses) return best_response ``` ### 应用案例分析 实际应用方面,《大模型RAG实战:RAG原理、应用与系统构建》一书中提供了丰富的实践指导和技术细节解析,涵盖了从理论基础到工程实现再到部署上线全流程的内容介绍。对于希望深入了解并掌握这项前沿技术的研究人员而言,这本书籍无疑是一个宝贵的学习资料来源[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值