我是Octave / Matlab的新手,我想绘制3D图表。
我能够使用预定义的公式这样做:
x=1:.1:5;
y=1:.1:5;
[xx,yy] = meshgrid(x,y);
z = sin(xx)+sin(yy);
mesh(x,y,z);
但现在的问题是如何从CSV(例如)获取数据。我知道我可以使用函数csvread
,但最大的问题是如何格式化CSV以包含此类数据。
上面做同一个图表的一个例子,但这次从Excel / CSV中获取数据将不胜感激。谢谢!
答案 0 :(得分:2)
完成!我终于能够做到了!
我是这样做的:
1)我在Excel中创建了一个文件,其中单元格A2:A42中的X值和单元格B1:AP1中的Y值(因此您形成一个矩形)。
2)然后在中间的细胞中我把我想要的公式(即=sin(A$2)+sin($B1)
)
3)将文件保存为CSV(但用空格分隔!)并手动编辑它以便这样看(QtOctave打开矩阵文件的方式,在Matlab中可能会有所不同)。例如(注意每列之前的额外空格):
# Created by Octave 3.2.4, Thu Jan 12 19:32:05 2012 ART <diego@notebook2>
# name: z
# type: matrix
# rows: 3
# columns: 3
1 2 3
4 5 6
7 8 9
(如果您不确定如何操作,请执行我的操作:创建一个简单的矩阵并导出它以查看导出文件的外观!)
4)Octave在Data下有一个函数 - &gt;从文件加载矩阵,加载那种文件。或实际运行此命令(varname
是结果变量的名称):
load("-text", "file-where-the-data-is", "varname")
5)创建图表(ex
是我刚刚导入的矩阵的名称):
x=1:.1:5;
y=1:.1:5;
mesh(x,y,ex)