for (int i = 0; i < k; i ++) { out << DOT << m_p1(i, 0) << " " << m_p1(i, 1) << " " << m_p1(i, 2) << endl; } for (int i = 0; i < k; i ++) { out << DOT << m_p2(i, 0) << " " << m_p2(i, 1) << " " << m_p2(i, 2) << endl; } for (int i = 0; i < k; i ++) { out << DOT << m_p3(i, 0) << " " << m_p3(i, 1) << " " << m_p3(i, 2) << endl; }
m_q1 = get_matrix (q1_new, 3); m_q2 = get_matrix (q2_new, 3); m_q3 = get_matrix (q3_new, 3); m_q4 = get_matrix (q4_new, 3);
m_q1等是一个矩阵的数据结构,q1_new是一个文件,意思是从文件读取数据存入矩阵,主要是如何参数化这几个数字来表示不同的矩阵和文件名字?
m_q1~4是什么类型的?声明一个对应类型的数组不行?
XX[4]; XX[0] = get_matrix (q1_new, 3); XX[1] = get_matrix (q2_new, 3); XX[2] = get_matrix (q3_new, 3); XX[3] = get_matrix (q4_new, 3); for(foo in 0~4){ for (int i = 0; i < k; i ++) { out << DOT << XX[foo](i, 0) << " " << xx[foo](i, 1) << " " << xx[foo](i, 2) << endl; } }
m_q1~4是4个二维矩阵,功能跟二维数组差不多,如你所说可以声明为数组,但
XX[0] = get_matrix (q1_new, 3); XX[1] = get_matrix (q2_new, 3); XX[2] = get_matrix (q3_new, 3); XX[3] = get_matrix (q4_new, 3);
这四行如何写循环呀,q1—4_new是四个指向特定路径文件的指针,能否写循环啊
我是这样声明的文件指针const char *q1_new = "/aa/bb/cc.txt"
@samful: 没必要全写循环吧?就算写了,能比这四行简单多少呢?
@之奇一昂: 我只是写了其中的4行,实际上还有几十行,所以想写个循环
@samful: const char[] *q_news; 这样?
string q[n] = {q1_new, q2_new, q3_new, ... };
int m_q[n];
for (int i=0; i<n; i++)
{
m_q[i] = get_matrix (q[i], 3);
}
用wsprintf应该可以的,比如遍历你有100个文件,那么可以这么写:
char*FilePath[100];
int m_q[n];
for(int i=0;i<100;i++)
{
FilePath[i]=new char[6];
wsprintf(FilePath[i],"q%d_new",i);
m_q[i]=get_matrix(FilePath[i],3);
}