首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MATLAB中为数组创建减法循环?

如何在MATLAB中为数组创建减法循环?
EN

Stack Overflow用户
提问于 2019-10-12 23:25:32
回答 1查看 114关注 0票数 0

我是MATLAB的新手,想学习更多关于循环的知识。首先,我有一个名为“A”的数组:

代码语言:javascript
运行
复制
A = 4 
    6
    7
    11
    12 
    17
    22
    25 

接下来,我想创建一个减去每一行的数组。因此,它本质上是"6-4“、"7-6”、"11-7“、"12-11”、"17-12“、"22-17”、"25-22“。我希望它显示为:

代码语言:javascript
运行
复制
2
1
3
1
5
5
3

然而,我所拥有的并没有输出任何东西。

我尝试使用"while“循环,但没有收到任何输出,也没有错误消息。到目前为止我所做的如下所示: PS -我以前使用过Python,所以可能我把Python语法和MATLAB搞混了,或者我的逻辑是错的?

代码语言:javascript
运行
复制
B = length(A); %will output the length of A, which is 8

while i <= B
    X = A(i, 1); %set X equal to "row i" and column 1
    Y = A(i+1, 1); %this i don't know what to do.. I want this to be the row 
                  %directly below i so if i is row 1, then I want this to be 
                  %row 2
    bsxfun(@minus, X, Y)
end

我觉得这应该很简单,但我不确定我做错了什么。我感谢所有的反馈!如果我的问题需要进一步澄清,请让我知道!:)

EN

回答 1

Stack Overflow用户

发布于 2019-10-14 16:17:16

MATLAB有一个内置的函数diff,它可以做你想做的事情:

代码语言:javascript
运行
复制
>> A = [4; 6; 7; 11; 12; 17; 22; 25];
>> diff(A)

ans =

     2
     1
     4
     1
     5
     5
     3

您也可以使用数组切片获得相同的结果:

代码语言:javascript
运行
复制
>> A(2:end) - A(1:end-1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58355631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档