0

Is it possible to apply the idea of array in C to MATLAB For example, if we have Double array[10]; and if we want to assign a value we write for example Array[5]=2;

Is there any way to write equivalent one in MATLAB ?

4

4 回答 4

2

您可以定义自己的类,覆盖 [] 运算符。我在这里
描述了机制 由于它是一个自定义函数,您不妨将基于 1 的索引更改为基于 0 的索引。

关于构造函数,我怀疑你能做到。

无论如何,你为什么要这样做?
您将混淆所有 Matlab 用户,并造成严重破坏。
在罗马时,像罗马人那样做。

于 2012-01-09T14:52:54.330 回答
2

我不确定“是否可以将 C 中的数组概念应用于 MATLAB”是什么意思。数组只是数字(或其他数据类型)的一维列表。MATLAB 主要设计用于处理矩阵(MATLAB 是矩阵实验室的缩写),数组或向量只是矩阵的一种特殊情况。所以我想你的问题的答案是肯定的,如果我理解正确的话。

要在 MATLAB 中初始化数组或矩阵,我们使用zerosone

>> array = zeros(1,5)

array =

     0     0     0     0     0

然后我们可以像 C 一样索引数组的元素:

>> array(3) = 3

array =

     0     0     3     0     0

但是请注意,MATLAB 数组索引是从一开始的,而 C 数组是从零开始的。

本文介绍了 MATLAB 中的矩阵/数组索引。

于 2012-01-09T14:17:28.327 回答
0

没有索引运算符[]。您必须()用于索引数组。

如果你写

x = 1:10;
x[2]

那么你会得到以下错误

 x[2]
 |
Error: Unbalanced or unexpected parenthesis or bracket.
于 2012-01-09T16:39:23.443 回答
0

是的你可以。数组用于 C 和 MATLAB,它们可以用于相同的函数。除了,请记住 C 和 MATLAB 的数组索引是不同的。

C 数组的第一个元素的索引为零。即在 X = [10 20 30 40] 中,x[0] 将返回 10。但在 MATLAB 中,这会出错。要访问数字 10,您必须在 MATLAB 中使用表达式 x[1]。

于 2012-01-09T15:58:31.330 回答