小编Car*_*arl的帖子

更新Matlab结构数组的每个元素中的一个字段

假设我有一个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)

有任何想法吗?谢谢.

arrays matlab struct field assign

19
推荐指数
1
解决办法
1万
查看次数

直接索引到Perl中的返回数组

这个问题已经在这里这里被问过PHP ,我对Perl也有同样的问题.给定一个返回列表的函数,有没有办法(或者什么是最好的方法)在不使用临时变量的情况下立即索引它?

例如:

my $comma_separated = "a,b,c";
my $a = split (/,/, $comma_separated)[0]; #not valid syntax
Run Code Online (Sandbox Code Playgroud)

我明白为什么第二行中的语法无效,所以我想知道是否有一种方法可以获得相同的效果,而无需先将返回值分配给列表并从中进行索引.

perl

16
推荐指数
2
解决办法
4505
查看次数

标签 统计

arrays ×1

assign ×1

field ×1

matlab ×1

perl ×1

struct ×1