C++读取高光谱raw文件为三维数组
时间: 2023-04-10 11:01:04 浏览: 84
我可以回答这个问题。C可以使用Python中的NumPy库来读取高光谱raw文件为三维数组。具体的代码实现可以参考以下链接:https://stackoverflow.com/questions/44887516/how-to-read-a-hyperspectral-image-in-python。
相关问题
C++读取一维数组的txt文件生成一维数组
可以使用C++的fstream库来读取txt文件中的数据,并将其存储到一维数组中。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// 打开txt文件
ifstream infile("data.txt");
if (!infile.is_open()) {
cout << "文件打开失败!" << endl;
return 0;
}
// 读取txt文件中的数据到数组中
int arr[100];
int n = 0;
while (!infile.eof()) {
infile >> arr[n];
n++;
}
// 输出数组中的数据
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
// 关闭文件
infile.close();
return 0;
}
```
在上述代码中,我们首先打开了名为“data.txt”的txt文件,然后使用while循环逐行读取文件中的数据,并将其存储到数组中。最后,我们输出了数组中的数据,并关闭了文件。
C++读取txt保存为二维数组
可以使用C语言中的文件操作函数fopen和fscanf来读取txt文件,并将读取的内容保存到二维数组中。
具体实现代码如下:
```c
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "input.txt";
int a[100][100], i, j;
// 打开txt文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file!\n");
return 1;
}
// 读取txt文件中的数字,保存到二维数组中
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
fscanf(fp, "%d", &a[i][j]);
}
}
// 关闭txt文件
fclose(fp);
return 0;
}
```
以上代码将读取名为input.txt的txt文件中的数字,保存到大小为100×100的二维数组a中。读取时使用fscanf函数按行读取,并将读取到的数字存储到对应的二维数组位置中。最后关闭文件并返回0表示运行成功。