for j = 1:(1-p0)*N idx = chains(i, j); new_idx(j) = [new_idx(j); idx]; end 无法执行赋值,因为左侧和右侧的元素数目不 同。如何改正
时间: 2023-12-14 22:39:41 浏览: 33
你可以尝试使用一个 cell 数组来存储 `new_idx` 的每个元素,每个 cell 中存储一个长度可变的向量,这样就能够动态地存储不同长度的向量。具体实现可以参考下面的代码:
```
new_idx = cell(1, (1-p0)*N);
for j = 1:(1-p0)*N
idx = chains(i, j);
new_idx{j} = [new_idx{j}, idx];
end
```
这样,每次赋值时,`new_idx{j}` 就会被扩展一个元素,而不是替换掉原有的向量。另外,根据你的需求,你可能还需要初始化 `new_idx` 为一个空的 cell 数组(即 `new_idx = cell(1, (1-p0)*N)`)。
相关问题
% 产生新的样本点 new_idx = zeros((1-p0)*N, 1); %-------------- for i = 1:M for j = 1:(1-p0)*N idx = chains(i, j); new_idx(j) = [new_idx(j); idx]; end new_idx = cell( (1-p0)*N,1); end无法执行赋值,因为左侧和右侧的元素数目不同。
这段代码中存在两个问题:
1. 在执行 `new_idx(j) = [new_idx(j); idx];` 时,`new_idx(j)` 是一个标量,而右侧 `[new_idx(j); idx]` 是一个向量。这样无法将一个向量赋值给一个标量,需要将 `new_idx(j)` 改为一个向量,比如使用 `new_idx{j} = [new_idx{j}; idx];`。
2. 在循环中,每次都将 `new_idx` 初始化为一个空的 `cell` 数组,这样会导致前面循环中已经添加的元素丢失。应该在循环外部先初始化 `new_idx`,然后在循环内部只进行向 `cell` 数组的添加。
修改后的代码如下:
```
new_idx = cell((1-p0)*N, 1);
for j = 1:(1-p0)*N
for i = 1:M
idx = chains(i, j);
new_idx{j} = [new_idx{j}; idx];
end
end
```
new_idx = zeros((1-p0)*N, 1); %----------------以下有问题--------------- for i = 1:M for j = 1:(1-p0)*N idx = chains(i, j); new_idx(j) = [new_idx(j); idx]; end new_idx = cell( (1-p0)*N,1); end 无法执行赋值,因为左侧和右侧的元素数目不同。
这段代码有一些错误,可能是由于变量类型不匹配导致的。你可以尝试以下修改:
```
new_idx = zeros((1-p0)*N, 1);
for j = 1:(1-p0)*N
idx = chains(1, j);
new_idx(j) = idx;
end
new_idx = num2cell(new_idx);
```
这里我假设 `chains` 是一个矩阵,第一维度有 `M` 个元素,第二维度有 `(1-p0)*N` 个元素。我把 `for` 循环的内部改成了一个循环,因为 `chains` 矩阵的第一维度似乎没有用到。我还把 `new_idx` 初始化为一个数值数组,并且在循环中直接把 `idx` 赋值给 `new_idx(j)`。最后,我把 `new_idx` 转换成了一个 cell 数组,因为你原来的代码中用到了 cell 数组的语法。
请注意,这个修改可能还需要根据你的实际情况进行调整。如果你需要更详细的帮助,请提供更多的代码和上下文信息,这样我才能更好地理解你的问题。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)