[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); 空赋值只能具有一个非冒号索引。
时间: 2024-01-30 14:03:41 浏览: 56
空赋值确实只能具有一个非冒号索引,但是在这里,您可以使用一个循环来逐个删除已选样本。因此,您可以使用以下代码来替换上述代码:
```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); %舍去对应的响应值 空赋值只能具有一个非冒号索引。
你可以使用以下代码来改正:
```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);
```
在这里,我们没有使用非冒号索引,而是使用了 `row1(i)` 和 `col1(i)` 的值来索引 `x_sort` 的元素。
阅读全文