Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
保存笛卡尔坐标的C程序变量? 我从来没有在C编程过,也没有用C++编程过一段时间,无论哪种方式,我还在学习。_C_Variables - Fatal编程技术网

保存笛卡尔坐标的C程序变量? 我从来没有在C编程过,也没有用C++编程过一段时间,无论哪种方式,我还在学习。

保存笛卡尔坐标的C程序变量? 我从来没有在C编程过,也没有用C++编程过一段时间,无论哪种方式,我还在学习。,c,variables,C,Variables,我正在用C编写一个程序,并将一个MATLAB程序转换成这个C程序。我有很多来自MATLAB的变量,它们是点的笛卡尔坐标X Y Z。是否有一个变量类型可以内置到C中?我需要减去不同的点,并对它们进行其他运算。有什么建议吗 谢谢, 半羊 编辑: 好的,我还有一个问题。我想确定这是个好主意。(但首先,对于stackoverflow,我是否应该通过编辑我的原始帖子,向我的帖子发布更多信息?——谢谢!) 问题: 我有一个具有几个特征的对象。假设它是一辆汽车,汽车有几个不同的参数 参数: 地图上的位置 海

我正在用C编写一个程序,并将一个MATLAB程序转换成这个C程序。我有很多来自MATLAB的变量,它们是点的笛卡尔坐标X Y Z。是否有一个变量类型可以内置到C中?我需要减去不同的点,并对它们进行其他运算。有什么建议吗

谢谢, 半羊


编辑: 好的,我还有一个问题。我想确定这是个好主意。(但首先,对于stackoverflow,我是否应该通过编辑我的原始帖子,向我的帖子发布更多信息?——谢谢!)

问题:

我有一个具有几个特征的对象。假设它是一辆汽车,汽车有几个不同的参数

参数:

地图上的位置 海拔高度(海平面?) 起始位置 末端位置

我可以使用一个SUBRUT或UNION(或者两者)来在车内的“对象”中拥有所有这些参数,并更新对象中的参数,就像它是自己的类,比如C++还是java? 比如,如果我想计算汽车从起始位置到当前位置的距离,就像笛卡尔平面,我可以这样做:

行驶距离=car.position-car.startPosition

谢谢,
DemiSheep

没有任何内置类型可以满足您的需要

您可能需要创建自己的小型结构类型,如下所示

typedef struct {
  double x, y, z;
} coordinate;
如果您仅限于C(而不是C++),则需要建立一个小型函数库来操作这些数据类型


不管它值多少钱,我强烈建议你四处看看,找到一个能为你提供这类东西的图书馆。理想情况下,您所工作的领域需要专门的类型。

没有内置类型可以满足您的需要

您可能需要创建自己的小型结构类型,如下所示

typedef struct {
  double x, y, z;
} coordinate;
如果您仅限于C(而不是C++),则需要建立一个小型函数库来操作这些数据类型


不管它值多少钱,我强烈建议你四处看看,找到一个能为你提供这类东西的图书馆。理想情况下,您使用的是特定于您所在领域的结构。

您可以使用
结构(
typedef结构{double x,y,z;}点;
)或数组(
double p[3]

如果你想变得更聪明,你可以通过雇佣一个工会来使用这两种方法:

typedef union {
  struct {double x,y,z;} s;
  double a[3];
} point;
但这是以更冗长的访问语法为代价的:

point p;
p.a[2] = 7;
p.s.x = 5;

您可以使用
struct
typedef struct{double x,y,z;}点;
)或数组(
double p[3]

如果你想变得更聪明,你可以通过雇佣一个工会来使用这两种方法:

typedef union {
  struct {double x,y,z;} s;
  double a[3];
} point;
但这是以更冗长的访问语法为代价的:

point p;
p.a[2] = 7;
p.s.x = 5;

你想做什么样的手术?为什么你要向C或C++移动?我要做的操作是加法、减法、除法、乘法。一般来说,如果问题与原问题没有多大关系,只要做一个新的条目(这是我在这个例子中的建议),但是,是的…你要找的正是“struct”。要扩展jkerian所说的,你需要一个struct,以及一系列的函数来操作它。这些方法与OOP中对象的方法类似,如果提供完整的方法集,则只能使用这些方法来接触数据结构,并获得与OOP中相同的封装。另请参见“不透明”数据结构。您希望执行什么类型的操作?为什么你要向C或C++移动?我要做的操作是加法、减法、除法、乘法。一般来说,如果问题与原问题没有多大关系,只要做一个新的条目(这是我在这个例子中的建议),但是,是的…你要找的正是“struct”。要扩展jkerian所说的,你需要一个struct,以及一系列的函数来操作它。这些方法与OOP中对象的方法类似,如果提供完整的方法集,则只能使用这些方法来接触数据结构,并获得与OOP中相同的封装。另请参见“不透明”数据结构。+1:我特别喜欢关于查找预先存在的库的建议。+1:我特别喜欢关于查找预先存在的库的建议。