matlab中srem 怎么用,For循环中的%% G使用从索引更改为%G

我正在尝试编写一个批处理文件来自动执行一些常规的Matlab进程 . 批处理文件使用For / L结构从0循环到设定值(通常在50和75之间) . 该脚本将主Matlab脚本复制到子文件夹并运行它 . 批处理通常会继续向前,所以我把一个:循环等到Matlab结束 .

echo off

setlocal EnableDelayedExpansion

REM The format is matlab_auto.in (max value).

For /L %%G in (0,1,%1) do (

REM Sanity check

echo 1 %%G

REM Create Outputs folder if non-existent

if not exist Outputs md Outputs

REM Copy .m file into deg folder and cd to folder

copy values_calc.m %%Gsort\values_calc.m

cd %%Gsort

echo Got to folder

REM Running .m script and sanity check

echo 2 %%G

matlab -nosplash -nodesktop -noFigureWindows -logfile output.log -r "run('values_calc.m');"

echo 3 %%G

REM Waiting for matlab to finish

:loop

tasklist /fi "imagename eq MATLAB.exe" |find ":" > nul

echo 4 %%G

if errorlevel 1 goto loop

echo Finished Matlab

echo 5 %%G

REM Copy .m outputs into outputs folder, ignoring confirmation

copy Output_*.* ..\Outputs /Y

echo Copied outputs

REM Sanity check and return home

echo 6 %%G

cd %~dp0

echo Home again

)

我遇到的问题是它在For循环的第一次迭代后结束 . Echo 1,2,3为0. Echo 4在第一次通过时显示0:循环但是它显示其余循环和Echos 5和6的%G . 它也不会继续进行For循环的进一步迭代 . 我假设这是因为%% G不再是一个数字(或在指定的范围内) .

我已经尝试实现一个调用子程序来使用循环外的goto但是它打开了Matlab数十次,导致计算机崩溃 .

任何见解或建议表示赞赏 . 谢谢 .

编辑:更改::以评论REM . 它没有解决这个问题,但看起来更好 .

编辑2:我有一个测试用例来证明这个问题 . 它的东西有:loop或goto . echo off setlocal EnableDelayedExpansion

for /l %%G in (0,1,5) do (

:loop

echo %%G

pause

if %%G==0 goto loop

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值