怎么改正[row1, col1] = find(ismember(x_sort,init_selected_samples)); for i = 1:length(row1) x_sort(row1(i), col1(i)) = []; end disp(x_sort); %舍去对应的响应值 空赋值只能具有一个非冒号索引。
时间: 2024-02-05 17:11:34 浏览: 81
你可以使用以下代码来改正:
```matlab
[row1, col1] = find(ismember(x_sort,init_selected_samples));
for i = 1:length(row1)
x_sort(row1(i), col1(i)) = [];
end
disp(x_sort); %舍去对应的响应值
```
改正的方式是将第二行的代码分成两行,以便在循环中正确地操作x_sort矩阵的元素。
相关问题
[row1, col1] = find(ismember(x_sort,init_selected_samples)); for i = 1:length(row1) x_sort(row1(i), col1(i)) = []; end disp(x_sort); 空赋值只能具有一个非冒号索引。 >> 怎么改正
这个错误是因为在空赋值中使用了多个索引。请修改代码如下:
```
[row1, col1] = find(ismember(x_sort,init_selected_samples));
for i = 1:length(row1)
x_sort(row1(i), col1(i)) = [];
end
disp(x_sort);
```
将 `x_sort(row1(i), col1(i)) = [];` 修改为 `x_sort(row1(i), col1(i)) = []` 即可。
[row1, col1]=find(ismember(x_sort,init_selected_samples)); % 将用过的元素设为空集 for i = 1:length(row1) x_sort(row1(i), col1(i)) = []; end % 输出处理后的矩阵A disp(x_sort); 空赋值只能具有一个非冒号索引。
空赋值确实只能具有一个非冒号索引,但是在这里,您可以使用一个循环来逐个删除已选样本。因此,您可以使用以下代码来替换上述代码:
```matlab
[row1, col1] = find(ismember(x_sort,init_selected_samples));
for i = 1:length(row1)
x_sort(row1(i), col1(i)) = [];
end
disp(x_sort);
```
这将遍历每个已选样本并将其从矩阵中删除,最终输出处理后的矩阵 `x_sort`。
阅读全文