此类型的变量不支持使用大括号进行索引。 出错 oooo (line 703) node_str = strsplit(data{1}{i}, ': '); nodes4 = []; for i = 1:length(data) node_str = strsplit(data{1}{i}, ': '); node_coord = strsplit(node_str{2}, ','); node_x = str2double(node_coord{1}(2:end)); node_y = str2double(node_coord{2}); node_z = str2double(node_coord{3}(1:end-1)); nodes4 = [nodes4; node_x, node_y, node_z]; end
时间: 2024-02-04 08:02:17 浏览: 29
这个错误是因为 `data` 变量不是一个 cell 数组,不能使用大括号索引。如果 `data` 是一个字符串数组,可以使用以下代码:
```
nodes4 = [];
for i = 1:length(data)
node_str = strsplit(data(i), ': ');
node_coord = strsplit(node_str{2}, ',');
node_x = str2double(node_coord{1}(2:end));
node_y = str2double(node_coord{2});
node_z = str2double(node_coord{3}(1:end-1));
nodes4 = [nodes4; node_x, node_y, node_z];
end
```
这种方法与之前的方法类似,只是将 `data{1}{i}` 替换为 `data(i)`。这样做可以使代码适用于字符串数组。
相关问题
此类型的变量不支持使用大括号进行索引。 出错 oooo (line 704) node_str = strsplit(data{1}{i}, ': '); nodes4 = []; for i = 1:length(data) node_str = strsplit(data{1}{i}, ': '); node_coord = strsplit(node_str{2}, ','); node_x = str2double(node_coord{1}(2:end)); node_y = str2double(node_coord{2}); node_z = str2double(node_coord{3}(1:end-1)); nodes4 = [nodes4; node_x, node_y, node_z]; end如何修改
这个错误是因为 `data` 变量不是一个 cell 数组,不能使用大括号索引。如果 `data` 是一个字符串数组,可以使用以下代码:
```
nodes4 = [];
for i = 1:length(data)
node_str = strsplit(data(i), ': ');
node_coord = strsplit(node_str{2}, ',');
node_x = str2double(node_coord{1}(2:end));
node_y = str2double(node_coord{2});
node_z = str2double(node_coord{3}(1:end-1));
nodes4 = [nodes4; node_x, node_y, node_z];
end
```
这种方法与之前的方法类似,只是将 `data{1}{i}` 替换为 `data(i)`。这样做可以使代码适用于字符串数组。
nodes4 = []; for i = 1:length(data) node_str = strsplit(data(i), ': '); node_coord = strsplit(node_str{2}, ','); node_x = str2double(node_coord{1}(2:end)); node_y = str2double(node_coord{2}); node_z = str2double(node_coord{3}(1:end-1)); nodes4 = [nodes4; node_x, node_y, node_z]; end 错误使用 strsplit (line 80) 第一个输入必须为字符向量或字符串标量。 出错 oooo (line 703) node_str = strsplit(data(i), ': ');
这个错误通常是由于 `data` 变量中包含非字符串元素而导致的。你可以通过将其转换为字符串数组来解决这个问题,例如:
```
data = string(data); % 将 data 转换为字符串数组
nodes4 = [];
for i = 1:length(data)
node_str = strsplit(data(i), ': ');
node_coord = strsplit(node_str{2}, ',');
node_x = str2double(node_coord{1}(2:end));
node_y = str2double(node_coord{2});
node_z = str2double(node_coord{3}(1:end-1));
nodes4 = [nodes4; node_x, node_y, node_z];
end
```
在这个例子中,我们首先使用 `string` 函数将 `data` 转换为字符串数组,然后再使用 `strsplit` 函数进行字符串操作,以避免出现上述错误。