1

有人能告诉我为什么我会收到这个错误 - ???从单元格转换为双精度时出现以下错误: 使用 ==> 双精度时出错 无法从单元格转换为双精度。

==> 测试中的错误 18 CX(end+1,:) = temp(1);

这是代码:

file = fopen('C:\Program Files (x86)\Notepad++\testFile.txt'); % open text file

tline = fgetl(file); % read line by line and remove new line characters

%declare empty arrays
CX = [];
CY = [];
CZ = [];

while ischar(tline) % true if tline is a character array
    temp = textscan(fid,'%*s%f%f%f','Delimiter',',<>'); % loads the values from all rows with the specified format into the variable data

    CX(end+1,:) = temp(1);
    CY(end+1,:) = temp(2);
    CZ(end+1,:) = temp(3);

    tline = fgetl(file);
end

fclose(file); % close the file

plot3(CX, CY, CZ) % plot the data and label the axises
xlabel('x')
ylabel('y')
zlabel('z') 
grid on
axis square
4

2 回答 2

3

快速猜测:使用花括号有帮助吗?

CX(end+1,:) = temp{1}
于 2012-05-23T13:40:10.413 回答
2

使用cell2mat将元胞数组(textscan返回的内容)转换为数值数组,您可以将其与其他数值数组一起使用(如附加到,在您的情况下)。

我还建议使用vertcat而不是您采用的连接方法:

CX = vertcat(CX, cell2mat(temp(1)));

或者,您可以将所有 3 个值读入一行,然后连接成一个 N×3 矩阵......很多选项。

于 2012-05-23T13:39:13.643 回答