小编Flo*_*ris的帖子

将数组键分组到数字范围,可能吗?

我有以下数组:

(
    [25] => 1
    [26] => 3
    [10] => 2
    [24] => 1
)
Run Code Online (Sandbox Code Playgroud)

它是使用array_count_values()PHP中的函数创建的.

在array_count_values之前,实际原始数组是这样的......

Array
(
    [0] => 26
    [1] => 
    [2] => 18
    [3] => 28
    [4] => 22
    [5] => 21
    [6] => 26
    [7] => 
    [8] => 
    [9] => 
    [10] => 
    [11] => 
    [12] =>
    [13] =>
    [14] =>
    [15] =>
    [16] =>
    [17] =>
    [18] =>
    [19] =>
    [20] =>
)
Run Code Online (Sandbox Code Playgroud)

这些是年龄,所以我如何将这些分组到年龄组?

让我们说我想要以下年龄组: <= 18 19-26 27-32 > 32

它应该看起来:

( …
Run Code Online (Sandbox Code Playgroud)

php arrays

7
推荐指数
2
解决办法
2839
查看次数

sed中的十六进制代码 - 在OSX上表现不尽如人意

我的问题的答案可能存在于SO,但我老老实实地看起来很难找到它.我得到的最接近的是这个问答,但我无法在我的机器上重现他们的结果(OSX 10.7.5,使用bash).

这是减少到其本质问题:我无法sed解释\xnn(例如\x41用于A)为十六进制字符.特别让我疯狂的是:

echo -e '\x41' 
Run Code Online (Sandbox Code Playgroud)

结果A- 所以操作系统及其功能理解我的十六进制代码......

echo -e '\x41' | sed 's/A/B/'
Run Code Online (Sandbox Code Playgroud)

结果B- 正如所料,因为十六进制代码转换为A之前sed看到它

echo A | sed 's/\x41/B/'
Run Code Online (Sandbox Code Playgroud)

结果A- 我原以为B

我尝试过类似的东西

echo A | LANG='C' sed 's/\x41/B/'
Run Code Online (Sandbox Code Playgroud)

结果是 A

echo A | LANG='' sed 's/\x41/B/'
Run Code Online (Sandbox Code Playgroud)

同上...

echo A | sed 's/[\x41]/B/'
Run Code Online (Sandbox Code Playgroud)

结果是 A

但...

echo A | sed 's/[\x41-\x41]/B/'
Run Code Online (Sandbox Code Playgroud)

结果B???

我完全是傻瓜吗?或者真的有什么奇怪的 …

macos hex sed

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

使用简单命令(无循环)从非连续范围的并集获取值到VBA数组

我有以下(表面上看,简单)任务:

使用VBA将电子表格中多个列的值复制到二维数组中.

为了让生活更有趣,列不是相邻的,但它们的长度都相同.显然,人们可以依次循环遍历每个元素,但这似乎非常不优雅.我希望有一个更紧凑的解决方案 - 但我很难找到它.

以下是我会考虑"简单方法"的一些尝试 - 为简单起见,我将范围放在A1:A5, D1:D5- 两个范围内总共10个单元格.

Private Sub testIt()
  Dim r1, r2, ra, rd, rad
  Dim valString, valUnion, valBlock
  Set r1 = Range("A1:A5")
  Set r2 = Range("D1:D5")
  valString = Range("A1:A5,D1:D5").Value
  valUnion = Union(r1, r2).Value
  valBlock = Range("A1:D5").Value
End Sub
Run Code Online (Sandbox Code Playgroud)

当我查看每个变量时,前两个具有维度,(1 To 5, 1 To 1)而最后一个具有维度(1 To 5, 1 To 4).我期待(1 To 5, 1 To 2)前两个,但事实并非如此.

如果我可以在一列中循环数据,并将一列中的所有值分配给数组中的一列,我会很高兴 - 但我也无法弄清楚如何做到这一点.就像是

cNames = Array("A", "D")
ci = 1
For Each c …
Run Code Online (Sandbox Code Playgroud)

arrays excel vba excel-vba

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

反转'\ 0'终止的C字符串?

我有一些关于反转空终止C字符串的概念性问题,以及关于指针性质的澄清问题.

输入可能是

char arr[] = "opal";
Run Code Online (Sandbox Code Playgroud)

和代码:

void reverse(char *str) {  /* does *str = opal or does *str = o since the pointer str is type char? */

    char* end  = str; /* what is the difference between char* end and char *end? and is *end pointing to opal now? */

    char tmp;

    if (str) {  /* if str isn't null? */
        while (*end) 
            ++end; 
    }
    --end; /* end pointer points to l now */

    while (str < end) …
Run Code Online (Sandbox Code Playgroud)

c reverse pointers dereference

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

如何在Excel自定义功能区控件的下拉控件中设置默认值

我为Excel 2010创建了一个自定义的Fluent Ribbon界面,其中包含一个下拉列表.相关的XML代码(简化):

<dropDown id="chooseFilter" showLabel="true" label="Filter" onAction="filterSelected" > 
    <item id="Filter1" label="Filter 1" /> 
    <item id="Filter2" label="Filter 2" /> 
</dropDown>
Run Code Online (Sandbox Code Playgroud)

加载功能区时,未选择任何值 - 下拉列表显示为空.

在此输入图像描述

我希望默认情况下选择第一个项目 - 但找不到任何描述如何操作的文档.我查看了控件的MSDN文档,但它没有涵盖这种情况.我尝试了各种"HTML-like"语句的排列,但它们都被自定义UI编辑器拒绝为无效.我试过的事情的例子:

<item id="Filter1" label="Filter 1" selected="selected" /> 
Run Code Online (Sandbox Code Playgroud)

错误信息: The 'selected' attribute is not declared

我试过其他属性,如selectedItem,valueselected<dropDown .../>declaraction,但似乎没有任何工作.

如果我只有正确的文档,这将是微不足道的,但即使是功能区自定义的完整Microsoft"文档"(在这里找到的是关于这个主题的沉默.

我甚至试图查看位于http://schemas.microsoft.com/office/2006/01/customui的架构是否"人类可读",但当我尝试在浏览器中打开它时,我被告知它是不可用.也许有一招......

所以我转向这个论坛的综合智慧.从我的Q/A比率可以看出,我不经常这样做...

如何修改我的XML以便功能区打开,并在下拉控件中选择任意项?我会满足于它是第一项 - 但"我选择在我的XML中声明的任何项目"都会更好.

我正在为此寻找一个XML解决方案 - 宁愿不必添加onLoadVBA代码或其他VBA技巧.它有多难,对吧?......

xml excel vba excel-vba

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

将复合语句放在for循环的条件中

我有一个人为的例子来演示特定功能的请求 - 我想知道是否有人有一个聪明的技巧来做到这一点.

以下是一个经常遇到的问题:

"打印一系列数字;在它们之间打印一个空格,并在末尾打印回车(但没有空格).

显而易见的解决方案是使最后(或第一)语句成为特例.我正在考虑如何使这更有效/更紧凑.

蛮力:

for(ii=0; ii<4; ii++) {
  printf("%d", ii);
  if(ii<3) printf(" "); else printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

请注意,这涉及对条件的两次评估.

展开:

for(ii=0; ii<3; ii++) {
  printf("%d ", ii):
}
printf("%d\n", ii);
Run Code Online (Sandbox Code Playgroud)

利用ii我们离开循环时最后一次增加的事实.

我想要的功能

ii = 0;
while(1) {
  printf("%d", ii);
  ii++;
  if(ii<3) printf(" "); 
  else {printf("\n"); break;}
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能在for声明中完成这项工作.我修改了一下,发现以下工作(有点令我惊讶......它确实需要括号,而且它?:,运算符之间很难读- 请参阅http://codepad.org/wFa2YwCg):

for(ii=0; (ii<3)?(printf("%d ",ii),1):(printf("%d\n",ii),0);ii++);
Run Code Online (Sandbox Code Playgroud)

我基本上把evaluate this conditionfor循环的一部分变成了一个execute this statement for most of the loop, and this …

c for-loop

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

bash tail在一个实时日志文件中,计算具有相同日期/时间的uniq行

我正在寻找一种在实时日志文件上拖尾的好方法,并显示具有相同日期/时间的行数.

目前这是有效的:

 tail -F /var/logs/request.log | [cut the date-time] | uniq -c
Run Code Online (Sandbox Code Playgroud)

但性能不够好.延迟超过一分钟,并且每次以少量线路输出.

任何的想法?

bash logging tail uniq

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

在Matlab中无法保存真正的大矩阵

我有一个大数组(1024x1024x360),我想将它保存到mat文件.我试试的时候

A=rand(1024,1024,360)
save('filename.mat','A');
Run Code Online (Sandbox Code Playgroud)

变量是在工作区中创建的,文件正在创建,但它仍然是空的......我在Win7-64机器上使用Matlab 2012a,为什么会这样?

matlab save mat-file

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

二维插值不规则网格fortran

如何在FORTRAN中实现二维插值,其中数据如下所示.x和y是两个坐标,z是取决于它们的值,x是均匀间隔的,但是y不是均匀间隔的,并且对应于x的均匀值的y的最大值保持增加.不会失去太多准确性 -

  • 基于给定的x和y获得z值的最简单方法是什么?
  • 基于给定的x和y获得z值的最快方法是什么?

谢谢SM

x    y    z
-----------
0   0     -
0   0.014 -
0   0.02  -

.....
....

0.1 0     -
0.1 0.02  -
0.1 0.03  - 

.......
.....

1.0  0     -
1.0  0.05  -
1.0  0.08  -

.......
.......
Run Code Online (Sandbox Code Playgroud)

interpolation non-uniform-distribution

4
推荐指数
2
解决办法
4811
查看次数

Bash - 计算输入数字的平均值

需要有关 Linux Bash 脚本的帮助。本质上,脚本在运行时会要求用户提供三组数字,然后计算输入的数字并找到平均值。

#!/bin/bash
echo "Enter a number: "
read a
   while [ "$a" = $ ]; do

echo "Enter a second set of numbers: "
read b
b=$
   if [ b=$ ]
Run Code Online (Sandbox Code Playgroud)

我这样做是错误的吗?

linux bash numbers average

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