标签: matrix-indexing

如何在MATLAB中找到数组中的最大值及其索引?

假设我有一个数组,a = [2 5 4 7].返回最大值及其索引的函数是什么?

例如,在我的情况下,函数应该返回7作为最大值,4作为索引.

matlab max matrix-indexing

33
推荐指数
5
解决办法
14万
查看次数

线性索引,逻辑索引以及所有这些

我们习惯于在Matlab中使用不同形式的索引:

  • 标准(使用每个维度的整数),
  • 逻辑(使用逻辑值),
  • 线性(使用单个索引遍历具有多个维度的数组).

乍一看,似乎这些形式是独占的:索引是标准的,逻辑的或线性的.然而,有时似乎在这些形式中的几种之间存在混合.例如,

>> A = magic(3)
A =
     8     1     6
     3     5     7
     4     9     2
>> A(A>5)
ans =
     8
     9
     6
     7
Run Code Online (Sandbox Code Playgroud)

这是合乎逻辑的索引,对吧?但它也具有线性索引的一些功能,因为返回了列向量.实际上,逻辑索引A>5与线性索引具有相同的效果find(A>5).

作为第二个例子,考虑一下

>> A = magic(3)
A =
     8     1     6
     3     5     7
     4     9     2
>> A(1:2, [true false true])
ans =
     8     6
     3     7
Run Code Online (Sandbox Code Playgroud)

在此表达式中,标准(整数值)索引用于第一个坐标,逻辑索引用于第二个坐标.

这些例子(以及在实践中出现的更复杂的例子)提出了以下问题:

  • Matlab有哪些类型的索引?
  • 它们如何结合起来?
  • 他们应该如何被提及?

arrays matlab matrix matrix-indexing

33
推荐指数
1
解决办法
2620
查看次数

Matlab是否接受非整数索引?

当然不是!......或者是吗?我们来做一些测试.

定义x = [10 20 30 40 50].然后,正如预期的那样,以下任何语句都会在Matlab中出现错误(下标索引必须是实数正整数或逻辑):

>> x(1.2)
>> x(-0.3)
>> x([1.4 2 3])
>> x([1.4 2.4 3.4])
>> x([1.4:4])
>> x(end/2)
Run Code Online (Sandbox Code Playgroud)

但是,冒号索引中接受非整数值.以下所有工作都在最近的Matlab版本中,尽管有一个警告(当用作索引时,冒号操作符需要整数操作数).

>> x(1.2:3)
ans =
    10    20

>> x(0.4:3)
ans =
    10    10    20

>> x(0.6:3)
ans =
    10    20    30

>> x(1.2:0.7:5)
ans =
    10    20    30    30    40    50

>> x(-0.4:3)
ans =
    10    10    20    30
Run Code Online (Sandbox Code Playgroud)

如果冒号表达式包括end:

>> x(1.5:end-2)
ans = …
Run Code Online (Sandbox Code Playgroud)

arrays matlab octave matrix-indexing

30
推荐指数
1
解决办法
1301
查看次数

[:,:]对NumPy数组意味着什么

抱歉这个愚蠢的问题.我在PHP上编程,但在Python上发现了一些很好的代码,并希望在PHP上"重新创建"它.但我对这条线路感到非常沮丧

self.h = -0.1    
self.activity = numpy.zeros((512, 512)) + self.h
self.activity[:, :] = self.h
Run Code Online (Sandbox Code Playgroud)

但我不明白是什么

[:, :]
Run Code Online (Sandbox Code Playgroud)

意思.

此外,我无法"谷歌它".

完整代码

import math
import numpy
import pygame
from scipy.misc import imsave
from scipy.ndimage.filters import gaussian_filter


class AmariModel(object):

    def __init__(self, size):
        self.h = -0.1
        self.k = 0.05
        self.K = 0.125
        self.m = 0.025
        self.M = 0.065

        self.stimulus = -self.h * numpy.random.random(size)
        self.activity = numpy.zeros(size) + self.h
        self.excitement = numpy.zeros(size)
        self.inhibition = numpy.zeros(size)

    def stimulate(self):
        self.activity[:, :] = self.activity > 0

        sigma = …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy matrix-indexing

29
推荐指数
3
解决办法
4万
查看次数

如何在MATLAB中的向量中删除一组索引处的元素?

我有一个包含100个元素的向量.我有另一个向量,我想从这个向量中删除元素的索引位置.

我该怎么做呢?

arrays matlab matrix matrix-indexing

27
推荐指数
1
解决办法
4万
查看次数

如何在Matlab中选择子矩阵(不是任何特定的模式)

如何在Matlab中选择子矩阵(不是任何模式)?例如,对于大小为10乘10的矩阵,如何选择由第1和第9行以及第4和第6列的交点组成的子矩阵?

谢谢你的任何有用的答案!

matlab matrix matrix-indexing

17
推荐指数
2
解决办法
6万
查看次数

在R中,负指数有什么作用?

我正在从R到C++移植程序的一部分(不足以编译和运行).我不熟悉R.我在网上使用这些参考文章已经做得很好,但被以下行难倒:

cnt2.2<-cnt2[,-1]
Run Code Online (Sandbox Code Playgroud)

我在猜测:

  1. cnt2 是一个二维矩阵
  2. cnt2.2是一个用句点''声明的新变量.使用与字母字符相同的方式.
  3. <- 是一项任务.
  4. [,-1]访问数组的一部分.我以为[,5]所有行都是第5列.如果这是正确的,我不知道-1指的是什么.

indexing syntax r matrix-indexing

12
推荐指数
3
解决办法
1万
查看次数

为什么在熊猫中使用“==”返回一个系列而不是布尔值?

我就是无法弄清楚第二行的“==”是什么意思:
- 这不是测试,没有 if 语句......
- 这不是变量声明......

我以前从未见过这个,问题是data.ctage==cat熊猫系列而不是测试...

for cat in data["categ"].unique():
    subset = data[data.categ == cat] # Création du sous-échantillon
    print("-"*20)
    print('Catégorie : ' + cat)
    print("moyenne:\n",subset['montant'].mean())
    print("mediane:\n",subset['montant'].median())
    print("mode:\n",subset['montant'].mode())
    print("VAR:\n",subset['montant'].var())
    print("EC:\n",subset['montant'].std())
    plt.figure(figsize=(5,5))
    subset["montant"].hist(bins=30) # Crée l'histogramme
    plt.show() # Affiche l'histogramme
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas matrix-indexing

12
推荐指数
1
解决办法
545
查看次数

如何有效地从(非稀疏)矩阵中删除零?

我有一个矩阵:

x = [0 0 0 1 1 0 5 0 7 0];
Run Code Online (Sandbox Code Playgroud)

我需要删除所有的零,如下所示:

x = [1 1 5 7];
Run Code Online (Sandbox Code Playgroud)

我使用的矩阵很大(1x15000),我需要多次(5000+),所以效率是关键!

arrays performance matlab matrix matrix-indexing

11
推荐指数
3
解决办法
6万
查看次数

在Matlab中是否有splat运算符(或等效运算符)?

如果我有一个数组(在运行时之前长度未知),有没有办法调用一个函数,并将数组的每个元素作为一个单独的参数?

像这样:

foo = @(varargin) sum(cell2mat(varargin));
bar = [3,4,5];
foo(*bar) == foo(3,4,5)
Run Code Online (Sandbox Code Playgroud)

上下文:我有一个n-d数组的索引列表Q.我想要的是什么Q(a,b,:),但我只有[a,b].由于我不知道n,我不能只是硬编码索引.

matlab operators multidimensional-array splat matrix-indexing

11
推荐指数
1
解决办法
1243
查看次数