Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将文件中的数据加载到多个数组中_Matlab_Matrix_Divide - Fatal编程技术网

Matlab 将文件中的数据加载到多个数组中

Matlab 将文件中的数据加载到多个数组中,matlab,matrix,divide,Matlab,Matrix,Divide,我想使用Matlab用如下数据绘制.dat文件中的每个值: 100 20 30 40 70 200 32 122 45 483 200 388 93 344 23 222 234 23 122 123 984 344 34 213 12 43 9 23 对于每一行,数据都由“(2个空格)作为分隔符分隔。空行(应该是另一种分隔符)将数据分隔为不同的数组 因此,我想在一个图形中绘制三个数组:数组1有两行,图形中有“红点”;数组2有3行带有“蓝点”,

我想使用Matlab用如下数据绘制.dat文件中的每个值:

100  20  30  40  70 
200  32  122  45  483

200  388  93  344  23  222 
234  23  122
123  984  344  34

213  12  43  9
23
对于每一行,数据都由
(2个空格)作为分隔符分隔。空行(应该是另一种分隔符)将数据分隔为不同的数组

因此,我想在一个图形中绘制三个数组:数组1有两行,图形中有“红点”;数组2有3行带有“蓝点”,数组3有2行带有“绿点”

如何编程将文件数据加载到三个数组(或矩阵)中,然后绘制它们

编辑: 顺便说一下,每行中的项目数量可能不同。如何用“0”填充短行以使所有行具有相同的长度?

请参阅:

要将数组拆分为不同的变量,可以执行以下操作:

# Where OriginalInputData is a string containing the whole .dat file.
InputData = strsplit(OriginalInputData, /n/n) #Cell array of strings
PreArray1 = strsplit(InputData(1), /n)
Array1(1,:) = strsplit(PreArray1(1), "  ")
Array1(2,:) = strsplit(PreArray1(2), "  ")
#Plot Array1

将相同的逻辑应用于其他阵列。它还将用“0”填充“空单元格”。

谢谢!但是,当我运行
InputData=strsplit(text,'\n\n')
其中
text
是包含整个文件的字符串,我得到了错误:“使用strsplit(第81行)的错误第一次输入必须是字符串。”这意味着什么以及如何避免它?@user3207822这意味着“text”不是字符串。尝试在invite命令中键入
whos
,并告诉我们“text”是什么。我收到错误:“使用whos参数时出错,必须包含字符串”。这是否意味着
text
不是字符串?我使用
text=fileread(filename)获得
text
当我试图显示
文本时,它看起来很好。matlab是否将字符串转换为其他格式,因为
text
的格式为
%d%d….
是的,在我使用
class(text)
将其类型输入到
whos
错误后,
text
的类型是双重的,您是否刚刚编写了
whos
?看见是双人房吗?当你显示它时,它会准确地显示你在问题中写的内容?也许这意味着它是一个双倍细胞。如果它是一个双精度单元格,那么这意味着它已经分割了数据。如果它是一个大的双精度(带空格..?),那么您可以执行
text=num2str(text)
将其转换为字符串。
# Where OriginalInputData is a string containing the whole .dat file.
InputData = strsplit(OriginalInputData, /n/n) #Cell array of strings
PreArray1 = strsplit(InputData(1), /n)
Array1(1,:) = strsplit(PreArray1(1), "  ")
Array1(2,:) = strsplit(PreArray1(2), "  ")
#Plot Array1