我有一个包含5列的文本文件。以下是示例数据:
@foreach (var item in Model.Items)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Product_ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Product_Title)
</td>
</tr>
}
第一列包含字符,其他列只是数字。该文件包含多行。我试图读取.txt如下;
book 1 3 5 7
paper 3 9 0 2
pen 3 1 2 0
pencil 9 0 3 9
它正确读取了列。但是,它只读取第一行,而不是全部。为什么会这样?如果我想读取所有行和所有列,该怎么办。谢谢
答案 0 :(得分:2)
我假设您要创建一个单元格数组,其中每个单元格都包含文本文件中的单个元素 您目前提供的代码是正确的:
fileID = fopen('filename.txt');
C = textscan(fileID,'%s %n %n %n %n');
fclose(fileID);
但是现在C
中的每个单元格都包含txt文件中的整个列:
其中C{1,1}
包含第一列,即四个字符串(书,纸,笔,铅笔)。
现在是时候了解&#34;解开&#34;这样的细胞使用这段代码:
for i=1:size(C,2)
if(iscell(C{:,i}))
A(:,i)=reshape(C{:,i},length(C{:,i}),1);
else
A(:,i)=num2cell(reshape(C{:,i},length(C{:,i}),1));
end
end
基本上说&#34;如果单元格包含一个单元格(请参阅C{1,1}
),只需在length(C{:,i})
个不同的单元格中打开其内容。相反,如果单元格包含数组,则将此数组的每个元素分配给不同的单元格。&#34;。
现在,单元格数组A
的格式为
我希望这是你正在寻找的。 p>