GO TO 语句 - Fortran 到 Matlab

2024-05-26

我一直在努力将此网格搜索代码从 Fortran 转换为 Matlab,但是我无法正确合并 GO TO 语句(我正在尝试使用 while 循环,但我认为我需要其他东西来结束搜索) 。任何帮助将不胜感激。

vmax    = -1.0E+15           
amax_G  = -1

askipR  = REAL(ac_max - ac_min)/REAL(intA)

askip   = CEILING(askipR)


DO acc0 = 1,intA+1  

acc = ac_min + askipR * (acc0-1)  

    cons = ( x1 - grida2(acc) ) / onetauc

    IF (cons<0.0) GOTO 102

    vtemp = utilR(cons) + one_sv * utilB(acc)

    IF (vtemp>vmax) THEN      
        vmax = vtemp
        amax_G = acc
    ELSE
        GOTO 102
    ENDIF

ENDDO ! acc0


102 continue

IF (askip<2) GO TO 109

askip = askip/2

IF (amax_G>ac_min) THEN  

    acc = amax_G - askip
    cons = ( x1 - grida2(acc) ) / onetauc

    IF (cons<0.0) PRINT *,'WARNING: NEGATIVE CONS @ ASEARCH_Rx'

    vtemp = utilR(cons) + one_sv * utilB(acc)

    IF (vtemp>vmax) THEN
        vmax   = vtemp
        amax_G = acc
        GOTO 102
    ENDIF

ENDIF 


IF (amax_G < ac_max) THEN  

    acc  = amax_G + askip
    cons = ( x1 - grida2(acc) ) / onetauc

    IF (cons<0.0) GO TO 102

    vtemp = utilR(cons) + one_sv * utilB(acc)

    IF (vtemp>vmax) THEN
        vmax = vtemp
        amax_G = acc
    ENDIF

ENDIF 

GOTO 102

109 CONTINUE

vfunR(jc,ac,sc)   = vmax    ! jc=Nj

afunR_G(jc,ac,sc) = amax_G  ! jc=Nj

您可以使用 GOTO 语句实现两种类型的控制流:

类型1:跳出循环

GOTO 语句用于跳出 DO 循环:

    DO acc0 = 1,intA+1  
        ! some code
        IF (cons<0.0) GOTO 102
        ! some more code
    END DO
102 continue

正如你所注意到的,如果cons < 0.0GOTO 语句指出移动到位于 DO 循环外部的标签 102。在matlab中无非就是一个简单的break在 for 循环中:

for acc0=1:intA+1
  % some matlab code
  if (cons < 0.0)
    break
  end
  % some more matlab code
end

类型2:创建循环

虽然没有显式编写循环,但以下代码创建了一些可以转换为 while 循环的内容:

    ! This is the start of the loop
102 continue
    ! This is the condition to exit the loop <<==
    IF (askip<2) GO TO 109
    ! stuff
    ! This is a condition to restart the loop    <<==
    IF (vtemp>vmax) THEN
         vmax   = vtemp
         amax_G = acc
         GOTO 102
    ENDIF
    ! stuff
    ! This is another condition to restart the loop   <<==
    IF (cons<0.0) GO TO 102
    ! stuff
    ! This is the end of the loop, asked to restart it  <<==
    GOTO 102
    ! This is outside of the loop
109 CONTINUE

最后,你将其翻译为:

while (askip >=2)
   % stuff
   if (vtemp > vmax)
        vmax = vtemp
        amax_G = acc
        continue
   end
   % stuff
   if (cons < 0.0)
      continue
   end
   % stuff
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GO TO 语句 - Fortran 到 Matlab 的相关文章

  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • 将自动生成的 Matlab 文档导出为 html

    我想为我开发的 Matlab 工具箱生成完整的帮助 我已经看到如何显示自定义文档 http www mathworks fr fr help matlab matlab prog display custom documentation h
  • 如何在fortran 90中生成[0,5]范围内的整数随机数?

    我对 Fortran 编程有点陌生 任何人都可以帮我解决问题吗 我在生成整数随机数时遇到问题 在 Fortran 随机数范围 0 5 中使用 random seed 和 rand 为了支持answer https stackoverflow
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在 VSCode Fortran 调试中检查从另一个模块导入的变量

    我正在调试一些包含许多 Fortran 模块的代码 其中一些模块彼此共享变量 不幸的是 带有 VScode 的 gdb 在调试时似乎无法检查导入的变量 目前 当我需要检查导入的变量时 唯一的方法是停止调试 并手动更改代码以包含等于导入变量的
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • 有没有办法在matlab中进行隐式微分

    我经常使用 matlab 来帮助我解决数学问题 现在我正在寻找一种在 matlab 中进行隐式微分的方法 例如 我想区分y 3 sin x cos y exp x 0关于dy dx 我知道如何使用数学方法通常做到这一点 但我一直在努力寻找使
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题

随机推荐

  • 错误:命令“c++”失败,退出状态为 1

    所以我尝试按照以下说明安装 Pyv8https andrewwilkinson wordpress com 2012 01 23 integrating python and javascript with pyv8 https andre
  • Cassandra - 选择而不复制

    假设我创建了一个键空间和表 CREATE KEYSPACE IF NOT EXISTS keyspace rep 0 WITH replication class SimpleStrategy replication factor 0 CR
  • Node.js 可以调用 Chrome 吗?

    在桌面上运行的 Node js 是否可以生成 Chrome 浏览器窗口 我想启动一个 Chrome 浏览器 在 Node js 收到事件时提供窗口大小和位置 sys shell 命令只是方法吗 在 MacOS 上 var childProc
  • 包装一个采用 std::function 的函数,以便传递采用更多参数的函数

    Problem 我有一个函数double subs std function
  • 回退到正则表达式中字符串的开头

    是否可以让正则表达式退回到字符串的开头并再次开始匹配 这就是我问的原因 给定下面的字符串 我想捕获子字符串black red blue and green按照该顺序 无论主题字符串中出现的顺序如何 并且仅当所有子字符串都存在于主题字符串中时
  • Scala:如何定义带有变量参数列表的匿名函数?

    在 Scala 中 如何定义接受可变数量参数的匿名函数 scala gt def foo blah Int gt 3
  • 将鼠标悬停在一个伪元素上时,使另一个伪元素出现吗?

    我试图生成一个屏幕 其中利用 before and after伪元素 但我想知道这样的功能是否真的可行 我有一个包装 div 它包裹在输入周围 允许pseudo element在此包装纸上 就像是 lt wrapper div lt inp
  • Azure Web 角色中的网站项目

    我正在研究一个新的 ASP Net 项目 我们希望将其托管在 Windows Azure Web 角色中 该项目的技术要求之一是利用 ASP Net 的完整预编译选项 不可更新 单页程序集 Web Site项目模型 与 ASP Net 相反
  • 检查 Bash 数组中是否存在元素[重复]

    这个问题在这里已经有答案了 我想知道是否有一种有效的方法来检查 Bash 数组中是否存在元素 我正在寻找类似于我可以在Python中做的事情 例如 arr a b c d if d in arr do your thing else do
  • 为什么我们不能在 Map(Java) 上使用 Iterator?

    我明白要迭代Map 我需要使用entrySet 方法 然后使用Iterator就所得的Set 我觉得这个问题可能很愚蠢 但是 如何Map完全实现 以便使用Iterator直接就可以了 据我所理解 Map不是一个集合 并且Iterator旨在
  • OpenSSL HMAC 函数中的意外复杂性

    SSL 文档分析 这个问题与 OpenSSL 中 HMAC 例程的使用有关 由于 Openssl 文档在某些领域有点薄弱 分析表明使用 unsigned char HMAC const EVP MD evp md const void ke
  • 使 GetRawInputDeviceInfo 和 RIDI_DEVICEINFO 与 C# 一起使用

    我有一个问题 我似乎无法使 GetRawInputDeviceInfo 与 RIDI DEVICEINFO 结合使用 尝试检索 RID DEVICE INFO 根本不起作用 我从函数中得到错误 1 这意味着没有足够的空间来存储 RID DE
  • 机器人/蜘蛛可以利用 Cookie 吗?

    我正在尝试检测访客是否是人类 我刚刚有了一个想法 但不确定这是否可行 但是 如果我可以在用户的 浏览器上存储 cookie 并在他们浏览我的网站时检索它 如果我成功检索 cookie 这是否是检测机器人和蜘蛛的好技术 精心设计的机器人或蜘蛛
  • 在django中使用uuid查询对象

    我正在使用 uuid 创建一个 id 字段 该字段是主键 如下所示 import uuid class User Profile models Model id models UUIDField primary key True defau
  • 使用 SSH.NET SftpClient 设置扩展文件属性

    在使用 Renci SSH NET SFTP 库将文件从 Windows 上传到远程计算机 Ubuntu 16 04 LTS 后 我尝试使用扩展文件属性来存储一些信息 但属性没有得到保留 这就是我尝试设置扩展属性的方式 SftpFileAt
  • 如何获取 3G 调制解调器的 IP 地址?

    我的 GPRS 调制解调器有一张 SIM 卡 它可以连接Web Web 服务给它一个 IP 号码 我需要它 像那样 http www your ip address com http www your ip address com 我怎样才
  • Scrapy CrawlSpider 规则具有多个回调

    我正在尝试创建一个实现 scrapy CrawlSpider 的 ExampleSpider 我的 ExampleSpider 应该能够处理仅包含艺术家信息的页面 仅包含专辑信息的页面 以及其他一些包含专辑和艺术家信息的页面 我能够处理前两
  • 结构成员初始化 - 省略具有默认值的属性值

    我是 Swift 新手 正在关注在线文档 具体来说 我正在查看初始化 https docs swift org swift book LanguageGuide Initialization html https docs swift or
  • 使用 Objective-C 获取 Photoshop 的动作列表

    我正在使用 C 和 Obj C 编写一个与 Photoshop 交互的 OSX 应用程序 我一直在使用NSAppleScript使用动态构建的 AppleScript 来驱动 Photoshop 是的 这有点可怕 我希望能够以不同的方式驱动
  • GO TO 语句 - Fortran 到 Matlab

    我一直在努力将此网格搜索代码从 Fortran 转换为 Matlab 但是我无法正确合并 GO TO 语句 我正在尝试使用 while 循环 但我认为我需要其他东西来结束搜索 任何帮助将不胜感激 vmax 1 0E 15 amax G 1