假设我有一个struct数组arr,其中每个元素都有一堆字段,包括一个字段val.我想将每个元素的val字段增加一些常量,如下所示:
for i = 1:length(arr)
arr(i).val = arr(i).val + 3;
end
Run Code Online (Sandbox Code Playgroud)
这显然有效,但我觉得应该有一种方法可以在一行代码中执行此操作(并且没有for循环).我想出的最好的是两行,需要一个临时变量:
newVals = num2cell([arr.val] + 3);
[arr.val] = deal(newVals{:});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢.
这个问题已经在这里和这里被问过PHP ,我对Perl也有同样的问题.给定一个返回列表的函数,有没有办法(或者什么是最好的方法)在不使用临时变量的情况下立即索引它?
例如:
my $comma_separated = "a,b,c";
my $a = split (/,/, $comma_separated)[0]; #not valid syntax
Run Code Online (Sandbox Code Playgroud)
我明白为什么第二行中的语法无效,所以我想知道是否有一种方法可以获得相同的效果,而无需先将返回值分配给列表并从中进行索引.