Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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中绘制(31*1)维的单元阵列?_Matlab - Fatal编程技术网

如何在matlab中绘制(31*1)维的单元阵列?

如何在matlab中绘制(31*1)维的单元阵列?,matlab,Matlab,我有一个单元格数组,有一列三十一行,我要画一个数组,使横轴从一变为三十一,而纵轴对应于像“peer to inside cell”这样的值。 我的手机阵列: 数据2= 31×1单元阵列 “2.4392E-09”“2.6506E-09”“3.0690E-09”“4.0424E-09”“7.1719E-09” “1.8084E-08”“6.0006E-08”“2.1621E-07”“7.7861E-07”“2.6695E-06” “8.4323E-06”“2.3340E-05”“5.1783E-05

我有一个单元格数组,有一列三十一行,我要画一个数组,使横轴从一变为三十一,而纵轴对应于像“peer to inside cell”这样的值。 我的手机阵列:

数据2=

31×1单元阵列

“2.4392E-09”“2.6506E-09”“3.0690E-09”“4.0424E-09”“7.1719E-09” “1.8084E-08”“6.0006E-08”“2.1621E-07”“7.7861E-07”“2.6695E-06” “8.4323E-06”“2.3340E-05”“5.1783E-05”“1.1155E-04”“2.6871E-04” “3.4549E-04”“2.6871E-04”“1.1155E-04”“5.1783E-05”“2.3340E-05” “8.4323E-06”“2.6695E-06”“7.7861E-07”“2.1621E-07”“6.0006E-08” “1.8084E-08”“7.1719E-09”“4.0424E-09”“3.0690E-09”“2.6506E-09” ‘2.4392E-09’

i2=

123456789101113141415171717171717181823 24252627292931

我的绘图部分代码是:

i=1:1:31
data2=data(:,1)
i2=transpose(i);
i2=i2(:,1)
plot(i2,data2)

这个问题的目标是MATLAB的基础知识。 单元格数组中有字符串。使用
{}
访问单元格内容,并使用
str2double
将其转换为数字

此外,保持代码干净可读(
data
data2
i
i2
)在任何语言中都不是好的变量名。。。您不需要转置向量,但如果需要,可以使用快捷方式
。请注意,
表示它不是一个复杂的转置

idx = 1:size(data,1)
cstr = data(:,1); % call the content of cells with {} / call a cell element with ()
num = str2double(cstr); % convert string to doubles/numbers
plot(idx.',num) % .' transposes an array/vector but in fact, you don't need it here

这个问题的目标是MATLAB的基础知识。 单元格数组中有字符串。使用
{}
访问单元格内容,并使用
str2double
将其转换为数字

此外,保持代码干净可读(
data
data2
i
i2
)在任何语言中都不是好的变量名。。。您不需要转置向量,但如果需要,可以使用快捷方式
。请注意,
表示它不是一个复杂的转置

idx = 1:size(data,1)
cstr = data(:,1); % call the content of cells with {} / call a cell element with ()
num = str2double(cstr); % convert string to doubles/numbers
plot(idx.',num) % .' transposes an array/vector but in fact, you don't need it here
将存储为
data2
单元格中的字符的数字转换为数字(双精度)类型。它直接适用于单元阵列。如果所需的x轴与
1
(数据2)
相同,则不需要指定它。所以

plot(str2double(data2));
将存储为
data2
单元格中的字符的数字转换为数字(双精度)类型。它直接适用于单元阵列。如果所需的x轴与
1
(数据2)
相同,则不需要指定它。所以

plot(str2double(data2));

单元格中的数字似乎是字符/字符串。这不是一个简单的工作示例(post代码不是命令行窗口上的输出)我的代码是:i=1:1:31 data2=data(:,1)i2=transpose(i);i2=i2(:,1)绘图(i2,数据2)以及
数据是如何创建的?其中包含什么数据类型?这些数据是通过使用命令textscan调用文本文件创建的:data=textscan(fid、'%s'、'Delimiter'、'\n');为什么不用
%f
而不是
%s
阅读?这样,您就可以得到一个可以直接打印的普通数字数组。单元格中的数字似乎是字符/字符串。这不是一个简单的工作示例(post代码不是命令行窗口上的输出)我的代码是:i=1:1:31 data2=data(:,1)i2=transpose(i);i2=i2(:,1)绘图(i2,数据2)以及
数据是如何创建的?其中包含什么数据类型?这些数据是通过使用命令textscan调用文本文件创建的:data=textscan(fid、'%s'、'Delimiter'、'\n');为什么不用
%f
而不是
%s
阅读?这样你就可以得到一个普通的数字数组,你可以直接绘图。谢谢。你的代码很好。但是num=str2double(str);只返回单元格演示文稿的最后一行,我需要将所有行plot@shirin对不起,您可以直接在单元格上应用str2double。我更正了代码。现在应该可以用了,谢谢。你的代码很好。但是num=str2double(str);只返回单元格演示文稿的最后一行,我需要将所有行plot@shirin对不起,您可以直接在单元格上应用str2double。我更正了代码。现在应该可以了