Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
退出\返回主功能-Matlab_Matlab - Fatal编程技术网

退出\返回主功能-Matlab

退出\返回主功能-Matlab,matlab,Matlab,我正在用matlab编写一个代码,在这段代码中我有一个函数f(),它调用函数g(),它调用函数h() 函数f()在迭代101次的循环中调用g(),并g()调用h() 每次迭代,h()显示一个图像,用户对图像进行一些更改,直到按下Enter键或O键: 如果他按Enter键,则返回他所做更改的文件,并继续下一个图像。 如果他按O键,则h()返回更改文件。但不会继续到下一个图像,而是返回到Main 它类似于C中的退出(1) 有什么办法吗?我想你在找。虽然它不会立即将您返回到h,但您也必须将retu

我正在用matlab编写一个代码,在这段代码中我有一个函数
f()
,它调用函数
g()
,它调用函数
h()

函数
f()
在迭代101次的
循环中调用
g()
,并
g()
调用
h()
每次迭代,
h()
显示一个图像,用户对图像进行一些更改,直到按下Enter键或O键:

  • 如果他按Enter键,则返回他所做更改的文件,并继续下一个图像。
  • 如果他按O键,则
    h()
    返回更改文件。但不会继续到下一个图像,而是返回到
    Main

它类似于C中的退出(1)


有什么办法吗?

我想你在找。虽然它不会立即将您返回到h,但您也必须将
return
放在g中的某个位置

只要在中至少命名一个输出变量,无论是否使用
return
,都将返回输出

例如:

function out = f()
    % do stuff
    x = g();
    % do stuff with x
end


function out = g()
    % do other stuff
    out = h();
    if strcmp(out, 'O') % check whether user entered 'O' in h()
        return;
    else
        % do different stuff
    end
end

function out = h()
    out = input();
end

@Junaxx非常感谢您的回答。抱歉,我的问题不清楚,但是h()必须返回一些输入,即使用户按了“O”。换句话说,对于i=0到100(次),f()调用g(),而g()调用h()。对于每个i,h()显示一个图像,用户对图像进行一些更改,直到按“Enter”或“O”。如果他按enter h()键,返回他所做更改的文件,并继续下一个图像。如果他按下“O”,则h()返回更改文件,但不会继续到下一个图像,而是返回到Main。现在有什么想法吗?。再次感谢。@HowaidaKhoureieh:啊,我明白了。在这种情况下,您可以让
h()
返回多个输出变量,如
function[img,key]=h()
。它仍然会首先返回到
g()
,我认为没有办法解决这个问题。但是基于
键的值
g()
可以继续或中断循环。@Junaxx。谢谢毕竟,我可能会使用你的解决方案,但我必须先做一些更改。现在我检查用户是否按了“O”,如果是,我创建了一个名为“Exit”的文件。然后,如果文件存在,我签入f(),如果存在,我“返回”到main。再次感谢!