小编fbr*_*eto的帖子

按特征值对特征向量进行排序(相关排序)

我有一个未排序的特征值向量和一个相关的特征向量矩阵.我想根据排序的特征值集对矩阵的列进行排序.(例如,如果特征值[3]移动到特征值[2],我希望特征向量矩阵的第3列移到第2列.)

我知道我可以对O(N log N)via中的特征值进行排序std::sort.如果不滚动我自己的排序算法,我如何确保矩阵的列(相关的特征向量)跟随它们的特征值,因为后者是排序的?

c++ sorting eigenvalue eigenvector associated-sorting

4
推荐指数
1
解决办法
2757
查看次数

八度:矩阵中的多个子矩阵

我有一个大矩阵,我想从中收集一组子矩阵.如果我的矩阵是NxN并且子矩阵大小是MxM,我想收集I=(N - M + 1)^2子矩阵.换句话说,我希望原始矩阵中的每个元素都有一个MxM子矩阵,它可以位于这种矩阵的左上角.

这是我的代码:

for y = 1:I
    for x = 1:I
        index = (y - 1) * I + x;
        block_set(index) = big_mat(x:x+M-1, y:y+M-1)
    endfor
 endfor
Run Code Online (Sandbox Code Playgroud)

输出如果a)错误,并且b)暗示big_mat(x:x+M-1, y:y+M-1)表达式中的某些东西可以得到我想要的东西,而不需要两个for循环.任何帮助将非常感激

matlab wolfram-mathematica matrix octave submatrix

4
推荐指数
1
解决办法
3009
查看次数

关于TBB/C++代码的问题

我正在阅读线程积木书。我不明白这段代码:

            FibTask& a=*new(allocate_child()) FibTask(n-1,&x);
FibTask& b=*new(allocate_child()) FibTask(n-2,&y);
Run Code Online (Sandbox Code Playgroud)

这些指令是什么意思?类对象引用和 new 一起工作吗?谢谢解释。

下面的代码是这个类FibTask的定义。

class FibTask: public task

{
public:

 const long n;
    long* const sum;
 FibTask(long n_,long* sum_):n(n_),sum(sum_)
 {}
 task* execute()
 {
  if(n<CutOff)
  {
   *sum=SFib(n);
  }
  else
  {
   long x,y;

   FibTask& a=*new(allocate_child()) FibTask(n-1,&x);
   FibTask& b=*new(allocate_child()) FibTask(n-2,&y);
   set_ref_count(3);
   spawn(b);
   spawn_and_wait_for_all(a);
   *sum=x+y;
  }
  return 0;

 }
};
Run Code Online (Sandbox Code Playgroud)

c++ tbb

4
推荐指数
1
解决办法
846
查看次数

Cocoa问题:如何获得SEL的字符串表示?

是否有可能,给定a SEL生成它所引用的方法的字符串表示?

对于上下文:

我有一个对象实例初始化:

-(id) initWithTarget:(id)object action: (SEL)action;
Run Code Online (Sandbox Code Playgroud)

在实例中,我想回显引用的方法的字符串名称SEL.我怎么做?

cocoa introspection css-selectors

4
推荐指数
1
解决办法
697
查看次数

Objective C中的readonly和readwrite有什么区别?

任何人都可以告诉我iPhone SDK中的属性readonlyreadwrite属性之间的区别吗?

iphone properties objective-c

4
推荐指数
1
解决办法
3351
查看次数

我可以将一个向量的内容移动到另一个向量的末尾吗?

我想做类似以下的事情(a并且b都是vector<my_moveable_type>):

a.insert(a.end(), b.begin(), b.end());
Run Code Online (Sandbox Code Playgroud)

但我希望操作将b元素移动a而不是复制它们.我找到了,std::vector::emplace但这只是一个元素,而不是一个范围.

可以这样做吗?

stl vector move-semantics c++11

4
推荐指数
2
解决办法
2385
查看次数

CFMutableArray和NSMutableArray之间的区别?

NSMutableArray和之间有什么区别CFMutableArray

在哪种情况下,我们应该使用其中一种?

iphone objective-c nsmutablearray

3
推荐指数
1
解决办法
2567
查看次数

数组未正确返回

我试图返回一个简单的数组,但我没有得到正确的结果.我得到以下内容

arr1[0] = 1 
arr1[1] = 32767
Run Code Online (Sandbox Code Playgroud)

结果应该是结果

  arr1[0] = 1 
  arr1[1] = 15
Run Code Online (Sandbox Code Playgroud)

请建议.

int *sum(int a, int b){
  int arr[2];
  int *a1;
  int result = a+b;
  arr[0]= 1;
  arr[1]= result;
  a1 = arr;
  return a1;
}
int main(){  

  int *arr1 =  sum(5,10);
  cout<<"arr1[0] = "<<arr1[0]<<endl;
  cout<<"arr1[1] = "<<arr1[1]<<endl;

  return 0;

}
Run Code Online (Sandbox Code Playgroud)

c++ arrays

3
推荐指数
4
解决办法
181
查看次数

虚拟成员函数和std :: tr1 :: function:这是如何工作的?

这是一段代码示例.注意,它B是一个子类,A并且都提供了一个独特的print例程.另请注意main,两个bind调用都是&A::print,但在后一种情况下,B将传递引用.

#include <iostream>
#include <tr1/functional>

struct A
{
    virtual void print()
    {
        std::cerr << "A" << std::endl;
    }
};

struct B : public A
{
    virtual void print()
    {
        std::cerr << "B" << std::endl;
    }
};

int main (int argc, char * const argv[])
{
    typedef std::tr1::function<void ()> proc_t;

    A a;
    B b;

    proc_t a_print = std::tr1::bind(&A::print, std::tr1::ref(a));
    proc_t b_print = std::tr1::bind(&A::print, std::tr1::ref(b));

    a_print();
    b_print();

    return …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance tr1

3
推荐指数
1
解决办法
1361
查看次数

如何保存std :: mersenne_twister_engine的状态以便以后恢复?

我想保存一个状态,std::mersenne_twister_engine以便我可以在以后确切地恢复它.我知道我可以保存原始种子并调用discard引擎向前滚动一些步骤,但这需要了解引擎推进的次数,更不用说discard看起来像是一种O(N)向前推动引擎的低效()方式.

如何保存发动机的准确状态?

c++ state mersenne-twister c++11

3
推荐指数
1
解决办法
557
查看次数