new_idx_str = string(new_idx); new_idx_str = unique(new_idx_str); new_x = x(new_idx_str,:); 错误使用 string 从元胞转换失败。元素 1 必须可转换为字符串标量。怎么改正
时间: 2023-11-26 08:05:08 浏览: 111
这个错误提示是因为在使用 string 函数时,无法将元胞进行转换。你可以先将元胞中的内容转换为字符串数组,然后再使用 unique 函数进行去重。
修改后的代码如下:
```matlab
new_idx_str = string(cell2mat(new_idx));
new_idx_str = unique(new_idx_str);
new_x = x(new_idx_str,:);
```
这里用到了 `cell2mat` 函数将元胞转换为数值数组,再使用 `string` 函数将其转换为字符串数组。
相关问题
new_idx_str = string(cell2mat(new_idx)); new_idx_str = unique(new_idx_str); new_x = x(new_idx_str,:); 无法将类型为 string 的值用作索引。怎么改正
在MATLAB R2016b及之后的版本中,可以使用 string 类型作为索引,但在早期版本中不支持。因此,如果你的MATLAB版本不支持,请尝试将 string 类型转换为 char 类型,然后再进行索引。你可以尝试以下代码:
```
new_idx_str = string(cell2mat(new_idx));
new_idx_str = unique(new_idx_str);
new_idx_char = char(new_idx_str); % 将 string 转换为 char
new_x = x(new_idx_char,:); % 使用 char 类型索引
```
这将把 `new_idx_str` 转换为 char 类型,然后在 `new_x = x(new_idx_char,:)` 中使用 char 类型索引。注意,这会将字符串转换为 char 类型,可能会丢失一些字符串的信息,如编码格式等。如果你需要保留这些信息,请使用更高版本的 MATLAB。
int16_t* dispatcher::create_result_node(int source_idx, long input_data_idx){ /* insert the new node */ result_list * new_node = new result_list; new_node->data_idx = input_data_idx; /* if reuslt buffer is empty */ if(result_head[source_idx]->next == result_tail[source_idx]){ /* insert node between head and tail */ result_tail[source_idx]->pre = new_node; new_node->next = result_tail[source_idx]; result_head[source_idx]->next = new_node; new_node->pre = result_head[source_idx]; ordered_num[source_idx] = 0; ordered_edge[source_idx] = result_head[source_idx]; return new_node->result_data;
这段代码看起来是 C++ 语言的,是在创建一个新的结果节点,并将其插入到结果列表中。具体来说,这个函数接受两个参数:source_idx 表示源索引,input_data_idx 表示输入数据索引。函数首先创建一个新的结果节点 new_node,并将 input_data_idx 存储在其 data_idx 属性中。然后,如果结果缓冲区是空的,就将 new_node 插入到结果列表的头和尾之间。具体来说,将 result_tail[source_idx] 的 pre 属性设置为 new_node,new_node 的 next 属性设置为 result_tail[source_idx],result_head[source_idx] 的 next 属性设置为 new_node,new_node 的 pre 属性设置为 result_head[source_idx]。最后,将 ordered_num[source_idx] 设置为 0,将 ordered_edge[source_idx] 设置为 result_head[source_idx],并返回 new_node 的 result_data 属性。
阅读全文