如何在Matlab中单行将函数输出赋值给变量或向量?
Matlab 多输出函数的单行赋值技巧
嘿,这俩问题都是Matlab里处理多输出函数的常见场景,我来给你一步步讲明白:
1. 单行代码将函数输出赋值给变量
完全可以!Matlab原生就支持在单行里直接接收函数的多个输出值,只需要用逗号分隔变量就行。比如你有一个返回两个值的函数(比如计算圆的周长和面积):
function [perimeter, area] = circleProps(radius) perimeter = 2 * pi * radius; area = pi * radius^2; end
那单行赋值的写法就是:
[r, a] = circleProps(5);
这样变量r就拿到了周长,a拿到了面积,一行搞定,不需要拆分多行。
2. 单行代码将函数输出赋值给向量
当然也可以!你之前可能没找对写法——要把多个输出合并成向量,只需要把函数调用放在方括号[]里就行。还是用上面的circleProps函数举例,单行存成向量的写法是:
shapeResults = [circleProps(5)];
执行之后,shapeResults就是一个1x2的向量,第一个元素是周长,第二个是面积。
为啥之前可能失败?
如果之前这么写没生效,大概率是这两个原因:
- 没加方括号:直接写
shapeResults = circleProps(5)的话,Matlab只会返回函数的第一个输出值,忽略后面的,所以你拿到的只是周长,不是向量。 - 输出类型不兼容:如果函数返回的不是同类型的数值(比如一个是数值,一个是字符串),那没法组成向量,这种情况就得用单元格数组
{}来存:
(假设这个函数返回数值和字符串)mixedResults = {circlePropsWithLabel(5)};
内容的提问来源于stack exchange,提问作者Arlo Olson
相关产品推荐
相关产品推荐

