Matlab - 无法从单元格转换为双倍

时间:2012-05-23 13:30:46

标签: matlab 3d

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

==>中的错误18点考试     CX(结束+ 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

2 个答案:

答案 0 :(得分:3)

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

CX(end+1,:) = temp{1}

答案 1 :(得分:2)

使用cell2mat从单元格数组(textscan返回的内容)转换为数字数组,您可以使用它(如在您的情况下附加到其他数字数组)。

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

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

或者,您可以将所有3个值读入一行并连接到N-by-3矩阵而不是......很多选项。