运行修改后的代码data = zeros(28, 851); data(:, 1) = wavelengths; data(:, 2:end) = Ph_2d;出现了”无法执行赋值,因为左侧的大小为 28×850,右侧的大小为 28×722500。“的报错,为什么?怎么修改?
时间: 2024-02-20 16:01:23 浏览: 33
这个错误是因为在第4步中,Ph_2d数组的大小为28x850,而data矩阵的大小为28x851,其中第一列为波长,大小为28x1,第二列到最后一列为Ph_2d,大小为28x850,因此无法将Ph_2d数组直接赋值给data矩阵。你可以尝试将data矩阵的大小修改为28x850,代码如下所示:
```
data = zeros(28, 850); % 将data的大小定义为28x850
data(:, 1) = wavelengths; % 将波长添加到data的第一列
data(:, 2:end) = Ph_2d; % 将Ph_2d添加到data的第二列到最后一列
```
这样就可以避免左右大小不匹配的错误了。
相关问题
将以下代码生成的文件里的空值去除(即跳过运算),path = ("E:\Arcgis_0807\A_yuebiaofanyan_0322\MGM\0330MGM_instructions_files\try3_0519_PDS_Geoscience\cartOrder\cartorder\REF_0_23.mat") load('wavelengths.mat'); load(path); size_ref_1 = size(Ph,1); size_ref_2 = size(Ph,2); Ph = permute(Ph, [3,2,1]); Ph = Ph(17:44,:,:);%閫夊彇浜嗘尝娈�17-44鐨勫�间负涓�鍒� Ph = reshape(Ph, size(Ph,1), []); data = zeros(size(Ph,1), size(Ph,2)+1); data(:, 1) = wavelengths; data(:, 2:end) = Ph save('output0_23_try5.asc', 'data', '-ascii');
好的,以下是去除空值后的代码:
```
path = ("E:\Arcgis_0807\A_yuebiaofanyan_0322\MGM\0330MGM_instructions_files\try3_0519_PDS_Geoscience\cartOrder\cartorder\REF_0_23.mat")
load('wavelengths.mat');
load(path);
size_ref_1 = size(Ph,1);
size_ref_2 = size(Ph,2);
Ph = permute(Ph, [3,2,1]);
Ph = Ph(17:44,:,:);
Ph = reshape(Ph, size(Ph,1), []);
data = zeros(size(Ph,1), size(Ph,2)+1);
data(:, 1) = wavelengths;
data(:, 2:end) = Ph;
save('output0_23_try5.asc', 'data', '-ascii');
```
path = ("C:\Users\Administrator\Desktop\MGM\0330MGM_instructions_files\try3_0519_PDS_Geoscience\cartOrder\cartorder\REF_26_3.mat") load('wavelengths.mat'); load(path); size_ref_1 = size(Ph,1); size_ref_2 = size(Ph,2); Ph = permute(Ph, [3,2,1]); Ph = Ph(:,:,:); Ph = reshape(Ph, size(Ph,1), size(Ph,2)*size(Ph,3)); data = zeros(size(Ph,1), size(Ph,2)+1); wavelengths = reshape(wavelengths, [], 1); % 将 wavelengths 转换为 n 行 1 列的矩阵data(:, 1) = wavelengths; data(:, 1) = wavelengths; data(:, 2:end) = Ph save('output26_3_try4_0603.asc', 'data', '-ascii');代码是以上这个,怎么解决?已知原始的Ph为850*850*54
根据您提供的信息,您需要将 `Ph` 的大小调整为 `850*54*850`,并将 `wavelengths` 转换为 `850*1` 的矩阵,以便与 `Ph` 和 `data` 的大小匹配。您可以尝试以下代码:
```
path = "C:\Users\Administrator\Desktop\MGM\0330MGM_instructions_files\try3_0519_PDS_Geoscience\cartOrder\cartorder\REF_26_3.mat";
load('wavelengths.mat');
load(path);
Ph = permute(Ph, [1, 3, 2]); % 调整 Ph 的大小为 850*54*850
Ph = reshape(Ph, size(Ph,1), size(Ph,2)*size(Ph,3));
wavelengths = reshape(wavelengths, [], 1);
data = [wavelengths, Ph]; % 将 wavelengths 和 Ph 合并为一个矩阵
save('output26_3_try4_0603.asc', 'data', '-ascii');
```
这个代码将 `Ph` 的大小调整为 `850*54*850`,将 `wavelengths` 转换为 `850*1` 的矩阵,然后将 `wavelengths` 和 `Ph` 合并为一个矩阵 `data`。最后,将 `data` 保存为 ASC 文件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)