任何人都可以向我解释这一系列MatLAB代码中发生了什么

时间:2015-10-12 09:08:12

标签: matlab logical-operators inverse

void somefunc (void **elements)
{
// This function works on any array type
// Maybe it prints pointer addresses
any_struct_t **pp;
for (pp = (any_struct_t *)elements; *pp; pp ++)
    printf ("address: %x\n", *pp);
}

int main (const char *cmdline)
{
    typedef struct {
    int a, b, c;
} any_struct_t;

void *group[25] = {0}; // (any_struct_t **) 
group[0] = malloc (sizeof(any_struct_t));
somefunc(group); // <--- WARNING (any_struct_t **) vs. (void **)
getchar ();
exit (0);

我有这个代码。 任何人都可以向我解释这里发生了什么。我试图逐步(调试)理解它,但我无法理解使用反向&#39;〜&#39;在第4行,也使用&#39; val&#39;作为指数。

1 个答案:

答案 0 :(得分:4)

y = rand(20,3); 

创建一个均匀分布的随机数矩阵y

aa= unidrnd(2,20,3) - 1;

创建一个均匀分布的随机整数矩阵,从1到2,然后减1。因此,aa是0和1的矩阵。

val = ( aa & y<1.366e-04) | (~aa & y<8.298e-04);

此行检查aa为1和y<1.366e-04或者aa为0且y<8.298e-04的所有值。请注意,这几乎不会发生,y均匀分布的数字从0到1,因为这些小的不太可能。

aa(val) = ~aa(val);

获取之前计算的所有案例,如果在该索引中发生aa,则将$response = $fb->get('/me/invitable_friends?fields=id,name,first_name,score,display_name,picture.width(120).height(130)&limit=300',$_SESSION['facebookses']); $graph = $response->getGraphEdge()->asArray(); 从0更改为1或从1更改为0。