不允许在不同类型之间赋值。 出错 machine_learning (line 8) cdfData(i) = cdfread(filename, 'CombineRecords', true, 'ConvertEpochToDatenum', true);
时间: 2023-12-09 10:05:38 浏览: 148
这个错误通常是由于 `cdfData` 结构体数组的类型不正确导致的。具体来说,可能是因为在循环前没有正确地初始化 `cdfData` 结构体数组,或者在循环内部重新分配了不同类型的变量。
你可以尝试在循环之前使用 `struct` 函数初始化 `cdfData` 结构体数组,例如:
```
cdfData = struct('Variables', [], 'GlobalAttributes', [], 'VariableAttributes', []);
```
这将创建一个空的 `cdfData` 结构体数组,它的类型和结构都是正确的。然后,你可以在循环内部使用以下代码来将 `cdfread` 函数读取的数据存储到 `cdfData` 结构体数组中:
```
filename = fullfile(folder, filenames{i});
tempData = cdfread(filename, 'CombineRecords', true, 'ConvertEpochToDatenum', true);
cdfData(i).Variables = tempData.Variables;
cdfData(i).GlobalAttributes = tempData.GlobalAttributes;
cdfData(i).VariableAttributes = tempData.VariableAttributes;
```
这将使用 `tempData` 变量来存储 `cdfread` 函数读取的数据,并将它们存储到 `cdfData` 结构体数组中。请注意,这里使用了点符号来访问 `cdfData` 结构体数组中的每个元素的不同字段,例如 `Variables`、`GlobalAttributes` 和 `VariableAttributes`。
如果你在循环内部重新分配了 `cdfData` 变量,你可能需要使用类似的方法来保持结构不变,例如:
```
cdfData(i) = struct('Variables', [], 'GlobalAttributes', [], 'VariableAttributes', []);
```
这将创建一个空的 `cdfData` 结构体,可以使用点符号来设置其不同字段的值。
阅读全文