MATLAB - multiple return values from a function?

匿名 (未验证) 提交于 2019-12-03 02:50:02

问题:

I'm writing 2 functions in matlab, an initialize function and a function to insert items into an array treating it like a doubly-linked list. However, my initialize function only returns "ans =" and the initialized array. How can I have it also set values of my other variables? Here's my code:

function [ array, listp, freep ] = initialize( size )     array = zeros(size, 3);     listp = 0;     freep = 1; end 

回答1:

Matlab allows you to return multiple values as well as receive them inline.

When you call it, receive individual variables inline:

[array, listp, freep] = initialize(size) 


回答2:

I think Octave only return one value which is the first return value, in your case, 'array'.

And Octave print it as "ans".

Others, 'listp','freep' were not printed.

Because it showed up within the function.

Try this out:

[ A, B, C] = initialize( 4 ) 

And the 'array','listp','freep' will print as A, B and C.



回答3:

Change the function that you get one single Result=[array, listp, freep]. So there is only one result to be displayed



回答4:

Use the following in the function you will call and it will work just fine.

     [a b c] = yourfunction(optional)      %your code      a = 5;      b = 7;      c = 10;      return      end 

This is a way to call the function both from another function and from the command terminal

     [aa bb cc] = yourfunction(optional); 

The variables aa, bb and cc now hold the return variables.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!