我来自Matlab,在那里我可以右键点击一个2D矩阵,看到一个像excel一样的可视化里面是什么。现在,我正在C++ ( visualization )中工作,并且正在寻找类似于2d数组的东西,例如可视化,例如:
myArray = [ 1 2 3
4 5 6
7 8 9 ]在C++中做这样的事情最好的方法是什么?
发布于 2015-05-21 04:10:12
首先,对于C++中数组的声明/初始化,这是不正确的语法。我不知道是否有任何IDE可以为您可视化一个数组,但是您可以用这样的两个for循环来实现它。这也显示了数组的正确语法。
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
int myArray[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i=0; i<3; ++i) {
for (int j=0; j<3; ++j)
cout << myArray[i][j] << ' ';
cout << endl;
}
return 0;
}或者,如果您想方便调试,可以定义如下的预处理器指令
#include <iostream>
#include <iomanip>
using namespace std;
#define test_array(name,ni,nj,w) \
cout << #name " = {\n"; \
for (int i=0; i<ni; ++i) { \
cout << " "; \
for (int j=0; j<nj; ++j) \
cout << setw(w+1) << myArray[i][j]; \
cout << endl; \
} \
cout << '}' << endl;
int main(int argc, char **argv)
{
int myArray[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
test_array(myArray,3,3,2)
return 0;
}第四个参数将允许您设置列的宽度,这样您就可以很好地对齐。
发布于 2015-05-21 04:09:33
如果您将输出引用到控制台,那么只需编写一个接收数组及其大小的函数,然后使用cout将该信息打印到控制台。
但是,如果您使用它进行调试,则还有另一种数据可视化选项:当变量碰到在程序中设置的断点时对其进行处理。这里有几个注意事项:如果我正确地回忆起来,如果您已经动态地分配了数组,visualization将不会自动显示mouseover可视化中的所有元素,因为IDE不知道正确显示数组的大小。如果您使用静态大小的数组或任何STL容器类(其中一个是vector),建议使用它来代替动态分配的数组,那么这个问题就会得到解决,因为它们可以自我管理内存,并提供一些有用的函数来操作它们包含的数据集。
随着您深入到C++中,您可能会创建自己的类来保存矩阵,或者下载一个实现了该类的库。如果您想以最终喜欢的方式查看包含的信息,您还可以使用visualization的一种方法来自定义数据的可视化。我喜欢纳特维斯,因为它学习起来很简单,而且很快就能得到结果。
https://stackoverflow.com/questions/30364335
复制相似问题