精华内容
下载资源
问答
  • 其他变量不变
    千次阅读
    2020-07-15 10:12:53

    问题:

    在Windows批处理中,试图在循环中打印一个计算变量,但结果却是该变量的值总是不变:

    @echo off
    title timeout 函数测试
    @echo 定时开始 ......
    set k =0
    for /L %%i in (1,1,10) do (
        timeout /T 5 > nul
        @echo %%i
        set /a k = %%i * 5 
        echo %k% 秒过去了
    )
    
    @echo 定时结束。
    

    上面这段代码的含义是,定时5秒循环10次,每次定时结束,打印“多少秒过去了”。但结果却是这样的:

    D:\test\BAT>timeout-test.bat
    定时开始 ......
    1
    50 秒过去了
    2
    50 秒过去了
    3
    50 秒过去了
    4
    50 秒过去了
    5
    50 秒过去了
    6
    50 秒过去了
    7
    50 秒过去了
    8
    50 秒过去了
    9
    50 秒过去了
    10
    50 秒过去了
    定时结束。

    可见,变量k的值并没有随着循环变量i的值变化而变化。

    解决:

            该问题和Windows批处理脚本的处理模式有关,我的理解是:批处理是读一行解释、执行一行,解释完后(变量的替换等),就不再解释了,就是说即便外部程序在逻辑上又改变了变量的值,但解释器已经不再理会了。

    解决方法就是使用延迟变量解释,告诉解释器这是一个变量,后面的值还会改变。

    使用延迟变量条件:

    (1)打开延迟扩展设置: setlocal enabledelayedexpansion

    (2)使用!k!(2个感叹号夹1个变量)来读取变量,不开启延迟扩展时,读取方式是 %k%(2个百分号夹1个变量)

    改进后的代码:

    @echo off
    setlocal enabledelayedexpansion
    title timeout 函数测试
    @echo 定时开始 ......
    set k =0
    for /L %%i in (1,1,10) do (
    	timeout /T 5 > nul
        @echo %%i
        set /a k = %%i * 5 
    	@echo !k! 秒过去了	
    )
    
    @echo 定时结束。

    改进后的效果:

    D:\test\BAT>timeout-test.bat
    定时开始 ......
    1
    5 秒过去了
    2
    10 秒过去了
    3
    15 秒过去了
    4
    20 秒过去了
    5
    25 秒过去了
    6
    30 秒过去了
    7
    35 秒过去了
    8
    40 秒过去了
    9
    45 秒过去了
    10
    50 秒过去了
    定时结束。

    可见,改进后的程序能够按照预期目标完整地输出定时信息。

    说明:

    1、批处理中,数学计算表达式的写法:set /a  [表达式]

    2、不显示命令行本身: @命令行

    参考:

    1、批处理中setlocal enabledelayedexpansion的作用详细整理,https://www.jb51.net/article/29323.htm

    更多相关内容
  • 基于证明的使用不变量不变的混合系统开发方法
  • position: fixed;绝对定位 滚动条啦位置不变 position: relative; 静态变量 位置不变 可以用以动态的参考位置 position: absolute; 动态
  • java 方法内修改外部变量,值不变

    千次阅读 2020-02-15 18:31:47
    优化代码的时候遇到,无法修改变量的值。 场景: 现有两个java 方法,方法2包含在方法1中,方法1中的变量作为参数传入方法2,在方法2内部对这个传入的参数的值进行了修改。 public static void main(String[] args)...

    问题:

    优化代码的时候遇到,无法修改变量的值。

    场景:

    现有两个java 方法,方法2包含在方法1中,方法1中的变量作为参数传入方法2,在方法2内部对这个传入的参数的值进行了修改。

        public static void main(String[] args) {
            String ts = "123";
            changeTest(ts); // 基础数据类型,无法修改ts的值
            System.out.println(ts);
        }
        private static void changeTest(String ts){
            System.out.println(ts);
            ts = "456"; // 修改对外部方法无效
        }
    

    无法这样修改的数据类型包含: 8大基本类型 和 String

    结论:

    1.如果传入的是基本类型,该变量在方法1中的值不变,需要return 返回值;
    2.如果传入的是引用类型(对象),不修改该变量原指针时,该变量在方法1中的值将改变。
    3.不管传入方法2的参数是什么类型,方法2内部都能够获取到方法1中该参数的值。

    展开全文
  • 用于不变图像识别的通用径向正交矩不变量
  • 变量/独立变量(independent variable):自变量是指在实验中由实验者操作的变量,它被认为不会受其他变量的影响(即独立性)。 因变量(dependent variable):因变量是指随着自变量的变化而变化的变量。 控制...

    概念探析

    一般科学实验主要涉及以下三种变量:

    自变量/独立变量(independent variable):自变量是指在实验中由实验者操作的变量,它被认为不会受其他变量的影响(即独立性)。

    因变量(dependent variable):因变量是指随着自变量的变化而变化的变量。

    控制变量(control/controlled variable / fixed variable):控制变量是指实验中除自变量以外的影响实验变化和结果的潜在因素或条件,且在实验中一般需要控制其不变。也称无关变量( extraneous variable),多见于心理学实验。

    例如经典初中生物实验“光对鼠妇生活的影响”,考虑自变量“光”,因变量为“鼠妇的分布”,控制变量为“土壤湿度”和“温度”,通过实验者操作来改变自变量“光”(在实验中由实验者操作的变量),同时保持控制变量“土壤湿度”和“温度”不变(除自变量以外的影响实验变化和结果的潜在因素或条件),即可探究“光对鼠妇生活的影响”。

    再复杂一些,一些实验中可能包含了一些不由实验者控制或实验者不想考虑的、但其与因变量甚至自变量都相关,有可能歪曲(掩盖或夸大)自因素与因变量之间真正联系的变量,我们称其为混杂变量或混杂因素(confounder、confound、confounding variable)。通常不将其视为控制变量。而为了尽可能降低其对实验的影响,通常就需要借助统计学中的一些方法了(如倾向得分匹配(PSM)等)。

    混杂变量(混杂因素):混杂因子亦叫混杂因素或外来因素(confounder、confound、confounding variable),是指与研究因素(暴露因子)和研究疾病(结局因子)均有关、若在比较的人群组中分布不匀,可以歪曲(掩盖或夸大)研究因素与疾病之间真正联系的因素。

    在这里插入图片描述

    我们还会经常性地遇到协变量(covariate)这个称呼:

    协变量:指实验中除自变量以外的影响实验变化和结果的潜在因素或条件,但并非实验所感兴趣的变量。

    可以认为,控制变量和混杂变量都包含在协变量的范畴中。

    统计学中有一个类似的分类,将变量分为解释变量(explanatory variable)、响应变量(response variable)与协变量。自变量和解释变量都是实验中实验者关注的那部分变量,区别仅仅在于解释变量未必是独立的,也不一定能由实验者进行控制。

    在这里插入图片描述

    在经济学和回归问题中,其实还有个类似的概念,外生性变量(exogenous variable)和内生性变量(endogenous variable):

    A variable x_j is said to be endogenous within the causal model M if its value is determined or influenced by one or more of the independent variables X (excluding itself).
    

    可以看出,虽然概念类似,但是内生性变量和外生性变量是观测一个因果系统的时对变量内生性/外生性做出的描述,在一个因果系统内,内生性变量受到系统内外生性变量的影响,外生性变量则完全由外部条件决定。因此从稍微宏观点的角度看,对整个因果系统来讲,协变量可以是内生性变量也可以是外生性变量。

    实际应用

    而在计算机领域、统计学中研究的回归问题中,却通常不刻意区分自变量/解释变量/协变量,他们都可以被输入到自变量中,例如使用SPSS进行自回归分析:

    在这里插入图片描述

    只要认为有必要,大可将协变量输入到自变量栏目中。

    复杂系统中,使用基于神经网络的回归模型对某些目标变量进行多变量回归,也可弱化对自变量/解释变量/协变量的区分,都将其输入,统称为协变量或变量。

    参考文献

    https://www.xiahepublishing.com/2475-7543/MRP-2017-005

    https://stats.stackexchange.com/questions/395517/what-is-the-difference-between-covariate-and-confounding-variables

    https://bbs.pinggu.org/thread-4995555-1-1.html

    https://www.statology.org/covariate/

    https://www.zhihu.com/question/278428717

    https://spss.mairuan.com/jiqiao/spss-genn.html

    http://www-personal.umd.umich.edu/~delittle/Encyclopedia entries/Endogenous variable.htm

    https://www.statisticshowto.com/endogenous-variable/

    https://www.jianshu.com/p/863ece6e7f3a

    展开全文
  • 更新了 JDK 的版本,环境变量也进行了修改,为什么在命令界面输入 java -version 还是显示之前旧版本 JDK 的版本信息呢?可能有人在安装/更新 JDK 时遇到了这样的疑惑,这是什么原因导致的呢?网上的相关攻略找来找...


    前言

    更新了 JDK 的版本,环境变量也进行了修改,为什么在命令界面输入 java -version 还是显示之前旧版本 JDK 的版本信息呢?可能有人在安装/更新 JDK 时遇到了这样的疑惑,这是什么原因导致的呢?网上的相关攻略找来找去也没能解决问题,而导致此问题出现会有多方面的原因,本文我们对此问题进行归类汇总。

    在这里插入图片描述


    一、错误场景预演

    本人欲将 JDK 8 通过压缩包的方式升级为 JDK 17。

    • 本地旧版本:1.8.0_251
    • 预升级版本:17.0.2

    1.1、查看本地旧版本

    在配置环境变量之前,首先我们要明确,本地存在旧版本,如果本地没有 Java,也不会出现 java -version 不变的问题,输入命令检查:

    java -version
    

    我们可以看到旧版本的信息,具体如下图所示:

    在这里插入图片描述

    1.2、java -version 不变问题产生

    在完成 JDK 17 本地解压、配置之后,命令行输入 java -version 仍然显示 1.8.0_251 的版本信息,而非 17.0.2,问题出现。

    导致这个问题出现的原因有很多,我们接下来逐一排查。

    二、检查新安装 JDK 是否配置正确

    2.1、下载并解压目标 JDK

    我们将需要安装的目标 JDK 解压到目标文件夹,我的如下图所示:

    在这里插入图片描述

    2.2、配置 Java 环境变量

    • JAVA_HOME 变量指向 JDK 根目录,即 bin 目录上一级。
    • PATH 变量指向 JDK 的 bin 目录。

    通过“浏览目录”的形式分别配置 JAVA_HOME 和 PATH,具体如下图所示:

    在这里插入图片描述
    在这里插入图片描述

    2.3、注意 PATH 变量顺序

    环境变量中配置的 PATH 变量系统是按照先后顺序进行读取的,应将其置于最上方

    顺序存在问题,也会出现 java -version 不改变的情况。其顺序可以通过上图右侧“上移”的按钮改变。

    2.4、查看 Java 版本信息

    按照常理,这个时候我们可以在命令行输入 java -version 查看新装 Java 的版本信息。

    但是如果我们可以看到仍然显示的是之前旧版本的信息,而非新版本信息,我们就要到具体场景中进一步分析出错原因了,具体如下图所示:

    在这里插入图片描述

    三、不同具体错误场景分析

    我按照最容易出现的错误场景顺序将其归为以下几类,如果无法解决看下一条即可。

    3.1、PATH 变量顺序出错解决方式

    这个问题是最常出现的,在 2.3 中我们也提到了。

    出错原因:环境变量中配置的 PATH 变量,系统是按照先后顺序进行读取的,系统读取 Java 路径优先级不够,就会仍然显示之前的版本信息。 按照优先级应将其置于最上方

    解决方式:通过右侧“上移”的按钮改变 Java bin 目录的顺序即可,具体如下图所示:

    在这里插入图片描述

    3.2、系统中存在旧版 java.exe 解决方式

    出错原因:如果系统盘快捷调用中存在之前的 java.exe,如存在之前 JDK 1.8.0_251 的 java.exe,系统会优先调用,而不会调用最新的 java.exe, 显示的也就是旧版本的 java -version。

    解决方式:通过搜索工具检索系统盘(C 盘)中的 java.exe 文件,将含有 java.exe 的文件夹删掉即可,避免其调用旧版本。具体 3 个 java.exe 文件在 Oracle 目录的 javapath 相关目录下,作者本人的如下图所示,将整个 Oracle 目录或 Java 目录删掉即可

    在这里插入图片描述
    注意:java.exe 文件仅考虑存在于系统盘内的,这是旧版本 JDK 的输出文件,其他盘符不考虑。

    说明:java.exe 存在于 Oracle 目录的 Java 目录下,作者本人的 java.exe 文件位于C:\Program Files (x86)\Common Files 目录下,也有部分小伙伴的位于 C:\Windows\System32 目录下,通过检索工具如 Everything 查找很方便。

    四、问题完美解决

    通过上述步骤,问题完美解决,命令行输入 java -version,就可以看到新版本的信息了,具体如下图所示:

    在这里插入图片描述


    总结

    在本文中我们按照常见容易犯的错误顺序,总结了两种解决 java -version 不变问题的方法,如果上述两种方法仍没能解决你的问题请在本文下方留言,我将尽快回复补充。在开发过程中问题总是层出不穷的,坚持学习、工作依靠 Java,就要深入理解 Java,培养 Java 涵养,重视 Java 基础知识,在关键点不要犯不该犯的小错误。

    在这里插入图片描述


    我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

    展开全文
  • 基于半不变_半不变量_gramcharlier_Gram-Charlier_半不变量、Gran-Charlier级数_源码.zip
  • 平均变量和平均电路

    2020-11-16 15:35:08
    变量x(t)和平均变量茁都满足电路约束KVL和KCL(因为它们都是线性时不变的),同样也满 足由此推导出来的能量守恒定律及电路线性时不变元件的伏安关系:按平均变量表示的欧姆定律uR=RiR ,以及uL=LdiL/dt,iC
  • 但是问题出现在:我在一个函数(不是main函数)的开头定义了一些局部变量(这个函数在程序中会被循环调用),但是既然是另外一个函数中定义的变量,我想着应该会在函数退出后自动释放了,那也就不需要每次循环都初始...
  • a = 10 b = 20 def dangg(ii,iii): ii = 88 iii = 888 print(ii,iii) dangg(a,b) print(a,b) # 函数调用了这些赋值的参数 并不会改变参数的数据 # 相当于指针 指向数据的位置 ...C:\Users\Administrator>...
  • 需要在wincc中动态修改某些参数,希望设置一些内部变量作为中间变量,但运行中修改过的参数在系统重启后会丢失,该如何在输入后保持内部变量的值。 解决方法 最简单的方法:变量管理>内部变量>选择需要保持的...
  • 今天在课堂上学习了类的不变式这个概念。教材上的原文是Invariant Properties。解释比较模糊,翻译过来是这样: 类的一个不变量是类的一个性质。对于这个类的每个对象,这个不变量都为“真”。 这个模糊的解释让我...
  • python定义变量

    千次阅读 2020-11-20 20:14:22
    python变量的定义 功能:存储数据、被调用、标识数据(变量数据存储在内存里,数据是临时的)name = abc#name:变量名abc:变量name的值 print (name) #调用name变量,并打印变量 重点注意: python中字符带单引号...
  • Java变量

    万次阅读 多人点赞 2019-09-29 00:06:53
    文章目录定义分类按被声明的位置划分成员变量局部变量成员变量和局部变量的区别使用原则按所属的数据类型划分基本数据类型变量引用数据类型变量定义格式注意事项 定义 在程序执行的过程中,在某个范围内其值可以...
  • JS变量之间赋值,修改变量值,原变量会随之改变的问题 现象:  开发vue项目的过程中,需要多次用到一份基础数据,为减少代码量,提高一下复用效果,便用变量A来定义,在项目中需要用到时就用变量A进行赋值。  在...
  • 松弛变量

    千次阅读 2020-02-28 13:35:19
    若所研究的线性规划模型的约束条件全是小于类型,那么可以通过标准化过程引入M个非负的松弛变量。松弛变量的引入常常是为了便于在更大的可行域内求解。若为0,则收敛到原有状态,若大于零,则约束松弛。 对线性...
  • 本篇博客主要讲授华大半导(STM32、C51等单片机均可适用)复位(以看门狗复位为例)后变量数据保存的方法。 这里将用到__not_init属性,其用于变量声明,可禁止系统启动时变量的初始化,有了__not_init属性,编译器...
  • c语言中的局部变量和全局变量

    千次阅读 2021-08-05 22:52:14
    每个变量都有属于它的作用域,就是这些变量在什么范围内有效;我们按照变量的作用域范围可以把变量划分为局部变量和全局变量; 局部变量 局部变量出现在三种地方: (1)在函数的开头定义的变量 (2) 在函数内的复合...
  • 继续说,但是再做多重回归方程的时候只有3个因变量入选,其他都被排除了,那在写文章的时候那些被排除了的有相关性的因变量该怎么处理呢?这说明这些变量之间存在自相关,模型选择的是代表程度更高且自变量相互之间相关性...
  • 加入控制变量后结果悲催了!

    千次阅读 2021-08-01 17:44:54
    目录 1.1 问题的引入 1.2 什么是条件期望 教育与收入的关系 2.1 回到原例 2.2 通过实例演示 ... 加入控制变量后结果悲催了... 如何比较解释变量的系数相对大小? R2分解:相对重要性分析 (Dominance Analysis)
  • 指针变量是一个变量,它保存了基本类型变量的地址。  如果指针变量p保存了变量a的地址,那么称作p指向了a,*p 就是变量a。  如果p是一个指针变量,*p 表示了以 p 的内容为地址的变量,就是p指向的变量。   *p   ...
  • Matlab如何定义公共变量

    千次阅读 2021-04-18 04:00:01
    1. 用global定义全局变量,在子函数中也用global申明一下; 不推荐2. 用evalin与assignin进行变量空间之间数据通讯,具体的help 之3. 用 save load通过文件传递。 一般不采用,但是对于大量数据传递而不用参数的时候...
  • 一全局变量和局部变量 (1)全局变量和局部变量的含义: 在函数体内部定义的变量叫做局部变量,在函数体外部定义的变量叫做全局变量。局部变脸只能在定义的那个函数体的内部进行使用,而全局变量在所有函数内部都...
  • 形参,顾名思义,形式上的参数,在定义函数时函数名后面括号里面的变量名称就是形参;而实参就是平常定义的变量;如void swap(int x,int y)和int a=10,b=50中x、y是形参,a、b是实参,实参在主函数调用时会放在括号...
  • python全局变量与局部变量

    千次阅读 2021-01-29 09:53:30
    1.全局变量与局部变量全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在例1:n = 1 # 全局变量def func(a, b...
  • excel下拉公式保持一些参数不变

    千次阅读 2022-02-15 10:55:14
    在你不想让它变化的那个字母或数字前加上$,它就不什么变了。 比如 $A1 套用是A无论如何不变 A$1 套用时,1无论如何不会变 $A$1 套用时,A和1无论如何都不会变 如:
  • 万物皆变化,唯有初心不变
  • Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 385,615
精华内容 154,246
关键字:

其他变量不变

友情链接: bdsccode.rar