如何在Matlab中迭代列向量?

发布于 2024-09-14 02:48:52 字数 351 浏览 4 评论 0原文

可能的重复:
如何迭代遍历 MATLAB 中 n 维矩阵中的每个元素?

我有一个列向量 list,我想像这样迭代:

for elm in list
   //do something with elm

如何?

Possible Duplicate:
How do I iterate through each element in an n-dimensional matrix in MATLAB?

I have a column vector list which I would like to iterate like this:

for elm in list
   //do something with elm

How?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

卖梦商人 2024-09-21 02:48:52

在Matlab中,您可以直接迭代列表中的元素。如果您不需要知道当前正在处理哪个元素,这会很有用。

因此,您可以编写

for elm = list
%# do something with the element
end

注意,Matlab 会迭代 list 的列,因此如果 list 是一个 nx1 向量,您可能需要转置它。

In Matlab, you can iterate over the elements in the list directly. This can be useful if you don't need to know which element you're currently working on.

Thus you can write

for elm = list
%# do something with the element
end

Note that Matlab iterates through the columns of list, so if list is a nx1 vector, you may want to transpose it.

别理我 2024-09-21 02:48:52
for i=1:length(list)
  elm = list(i);
  //do something with elm.
for i=1:length(list)
  elm = list(i);
  //do something with elm.
嘿看小鸭子会跑 2024-09-21 02:48:52

matlab 中有很多函数,您根本不需要迭代。

例如,乘以它在列表中的位置:

m = [1:numel(list)]';
elm = list.*m;

matlab 中的矢量化算法通常要快得多。

with many functions in matlab, you don't need to iterate at all.

for example, to multiply by it's position in the list:

m = [1:numel(list)]';
elm = list.*m;

vectorized algorithms in matlab are in general much faster.

日裸衫吸 2024-09-21 02:48:52

如果您只想对每个元素应用函数并将结果放入输出数组中,则可以使用 arrayfun.

正如其他人指出的那样,对于大多数操作,最好避免 MATLAB 和 将您的代码矢量化

If you just want to apply a function to each element and put the results in an output array, you can use arrayfun.

As others have pointed out, for most operations, it's best to avoid loops in MATLAB and vectorise your code instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文