首页 > 解决方案 > matlab中数组外的括号

问题描述

function [ result ] = addprimes( s, e )
    z = s:e;
    result = sum(z(isprime(z)));
end
  1. z= s:ez创建一个包含元素的单位空间向量[s,s+1,s+2,...,e]
  2. isprime(z)根据它是非素数还是素数,返回一个具有逻辑0或位置的数组。1
  3. 发生了z(...)什么?这个操作的名称是什么?有人可以解释一下吗?

标签: matlab

解决方案


这称为逻辑索引。带有一些数字的示例:

>> x = [1 2 3 4 5 6];
>> isprime(x)
ans =
  1×6 logical array
   0   1   1   0   1   0
>> x(isprime(x))
ans =
     2     3     5
>> sum(x(isprime(x)))
ans =
    10

有关更多详细信息,请查看逻辑索引 - MATLAB 中矩阵索引的多个条件和“逻辑索引” 。


推荐阅读