小编Sib*_*ing的帖子

什么是MATLAB-ish方法"直方图化"一个排序的单元格数组?

假设我运行了7/11,并且100x3按照第一列时间排序的以下单元格数组是我的销售记录.

12:32:01 customer1 12
12:32:02 customer2 13
12:32:04 customer6 4
12:32:06 customer8 6
12:32:07 customer1 9
12:32:07 customer1 6
12:32:12 customer2 1
...
Run Code Online (Sandbox Code Playgroud)

正如您所注意到的,每个客户都可以多次购物.例如,客户1实际上做了三种不同的付款

我现在想计算每个客户的平均付款额. 例如,让我们假设客户1只进行了3次付款,如上所示.然后,他的平均付款将是(12+9+6)/3=9.

我当然可以写一个for循环来循环遍历所有条目并保持每个客户的轨道.但是,我觉得这不是用MATLAB完成的.

那么完成任务的MATLAB最简单的方法是什么?

matlab cell-array

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

在MATLAB中创建一个数字的数组的优雅方式?

我知道要10 0点钟,人们可以做到

A = zeros(10, 1);
Run Code Online (Sandbox Code Playgroud)

要获得10分1,人们可以做到

A = ones(10, 1);
Run Code Online (Sandbox Code Playgroud)

任意数字怎么样?说,我想要10 3分钟.我想出了一种方法.

A = linspace(3, 3, 10);
Run Code Online (Sandbox Code Playgroud)

这令人满意吗?有更优雅的方式吗?

arrays matlab matrix

3
推荐指数
2
解决办法
139
查看次数

MATLAB R2014b切换回旧配色方案?

截至公告日,MATLAB R2014b采用了新的配色方案,其排序代替redorangebluegray blue.

我想选择退回旧计划.我怎么能这样做?

PS:

如果我只是绘制点,线和所有这些,我可以自己指定颜色.然而,这种情况并非如此.

我正在调用一个复杂的绘图功能,它使用MATLAB颜色方案显示热图.它们曾经是" blue冷,red热",现在它们变得" gray blue冷,yellow热".这只是反直觉!

因此,为了避免修改功能,我宁愿将整个图形系统切换回R2014b之前的方案.

matlab matlab-figure

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

Android - for循环:for(boolean bool = true ;; bool = false)

以下代码段是从Play商店下载的Human Step Detection Android应用程序的一部分.由于它工作正常,所以我认为代码都有意义.

private boolean isMotion(float[] paramArrayOfFloat)
{
    if ((Math.abs(this.mOldAcc[0] - paramArrayOfFloat[0]) > 1.0F) || (Math.abs(this.mOldAcc[1] - paramArrayOfFloat[1]) > 1.0F) ||
        (Math.abs(this.mOldAcc[2] - paramArrayOfFloat[2]) > 1.0F));
        for (boolean bool = true; ; bool = false)
        {
            this.mOldAcc[0] = paramArrayOfFloat[0];
            this.mOldAcc[1] = paramArrayOfFloat[1];
            this.mOldAcc[2] = paramArrayOfFloat[2];
            return bool;
        }
}
Run Code Online (Sandbox Code Playgroud)

关于以下代码,我有两个问题:

1)循环条件:

for (boolean bool = true; ; bool = false){}

这个条件意味着每次循环开始时,bool都设置为true.然后当循环结束时,bool设置为false.这样做的目的是什么?另外,这里有什么意义呢?

2)if条件:

if ((Math.abs(this.mOldAcc[0] - paramArrayOfFloat[0]) > 1.0F) || (Math.abs(this.mOldAcc[1] - paramArrayOfFloat[1]) > 1.0F) || (Math.abs(this.mOldAcc[2] -paramArrayOfFloat[2]) > 1.0F)); …

android

2
推荐指数
1
解决办法
3198
查看次数

在Python中为列表的一部分添加偏移量?

我有一个列表a = [1, 2, 3, 4, 5],现在我想添加一个1从每个元素index 2开始,即a[2] + 1,a[3] + 1,a[4] + 1.

这就是我a = [1, 2, 4, 5, 6]最终想要的.

什么是最像Pythonic的东方

python arrays numpy list scipy

2
推荐指数
1
解决办法
6658
查看次数

MATLAB - 轴相等并且同时拉伸填充?

默认情况下,stretch-to-fill处于打开状态。所以

pixels = ones(100,100)
image(pixels);
colormap([0 0 0; 1 1 1]);
Run Code Online (Sandbox Code Playgroud)

产生

在此输入图像描述

强制轴具有相同的比例,这

pixels = ones(100,100)
image(pixels);
colormap([0 0 0; 1 1 1]);
axis equal;
Run Code Online (Sandbox Code Playgroud)

产生

在此输入图像描述

显然,stretch-to-fill被 覆盖axis equal。怎样做才能让它们共存?

matlab plot image aspect-ratio matlab-figure

2
推荐指数
1
解决办法
1436
查看次数

如果那么单线

在MATLAB中有这样的单线程吗?

if a > b
    foo = 'r';
else
    foo = 'g';
end
Run Code Online (Sandbox Code Playgroud)

matlab if-statement conditional-operator

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

在MATLAB中解压缩单元格数组?

我有一个100x1单元格数组,其每个元素都是一个1x2单元格数组.

我怎样才能优雅地将它打包成一个100x2单元格阵列?

matlab

2
推荐指数
1
解决办法
598
查看次数

MATLAB one liner用于2D矩阵中的批量分配?

说我有一个矩阵

A = zeros(5, 5);
Run Code Online (Sandbox Code Playgroud)

我希望批量修改一些元素,而不是使用for循环进行循环.例如,我希望将标记pts_to_modify为1的元素更改为where

pts_to_modify=[[2 3]; [3 2]];
Run Code Online (Sandbox Code Playgroud)

所以我希望A成为

0 0 0 0 0
0 0 1 0 0
0 1 0 0 0
0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做的时候

A(pts_to_modify(:, 1), pts_to_modify(:, 2)) = 1,
Run Code Online (Sandbox Code Playgroud)

我明白了

A =

     0     0     0     0     0
     0     1     1     0     0
     0     1     1     0     0
     0     0     0     0     0
     0     0     0     0     0
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能正确?

matlab

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

仅当“无损”时才转换为整数?

我希望仅当转换是“无损的”时才将字符串或数字转换为整数,或者仅当字符串或数字确实是整数时才将其转换为整数。

例如,

  • 3.0(一个确实是整数的浮点数) -> 3
  • '3.000'(一个整数字符串) -> 3
  • 3.1 -> 引发异常。
  • '4.2' -> 引发异常。

直接做int(x)将转换3.13.

这是我拥有的最好的:

def safe_cast_to_int(x):
    int_x = int(x)
    if np.issubdtype(type(x), np.floating):
        assert int_x == x, \
            f"Can't safely cast a non-integer value ({x}) to integer"
    return int_x
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好或更 Pythonic 的方式?

python

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