小编Sle*_*der的帖子

以行方式重塑MATLAB向量

假设我有一个矩阵a = [1 2 3 4 5 6];,我如何以行方式重塑它,例如 reshape(a, 2, 3)屈服

1 2 3 
4 5 6
Run Code Online (Sandbox Code Playgroud)

而不是MATLAB生成的默认列式结果:

1 3 5 
2 4 6
Run Code Online (Sandbox Code Playgroud)

我相信这是一项微不足道的任务,它可能具有内置功能来实现这一目标.我已经实现了一个完美的功能......然而,是否有更短,更整洁,更多的MATLAB方式?谢谢.

function y = reshape2(x, m, n) 
  y = zeros(m, n);

  ix = 0; 
  for i = 1:m
     for j = 1:n
         ix = ix + 1;
         y(i, j) = x(ix);
     end 
  end 
end
Run Code Online (Sandbox Code Playgroud)

algorithm matlab

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

Verilog有什么区别!和〜?

所以它最终导致让我保持数天的错误,是一段应该评估为False评估为True的代码.我的初始代码类似于:

if(~x && ~y) begin
    //do stuff
end
Run Code Online (Sandbox Code Playgroud)

即如果x不是一个而y不是一个那么就做.通过调试器,我意识到即使x为1,if语句中的表达式仍然导致TRUE并且后续代码被执行.

但是,当我将声明更改为:

if(x == 0 && y == 0) begin
//do stuff
end
Run Code Online (Sandbox Code Playgroud)

并尝试过:

if(!x && !y) begin
//do stuff
end 
Run Code Online (Sandbox Code Playgroud)

未评估if语句中的代码,这是预期的行为.我明白〜是一个有点否定的!一个逻辑否定,但不应该(~x &&~y)和(!x &&!y)评估相同的东西?我担心代码库太大了,所以我不能把它粘贴到这里,但这是我为使代码按照我的意图工作而做的唯一改动.谢谢.


作为回应,我在下面的一条评论中创建了一个测试用例来测试这种行为:

`timecale 10ns/1ns

module test_negation();

integer x, y;

initial begin
    x = 1; y = 0;

    if(~x && ~y) begin
        $display("%s", "First case executed");
    end

    if(!x && !y) begin
        $display("%s", "Second case executed");
    end

    if(x == 0 && y == 0) begin
        $display("%s", "Third case executed");
    end
end …
Run Code Online (Sandbox Code Playgroud)

boolean-logic verilog modelsim

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

MySQL 数据库版本控制

您使用什么方法对数据库进行版本控制?我已将所有数据库表作为单独的 .sql 脚本提交到我们的存储库 (mercurial)。这样,如果团队的任何成员对员工表进行更改,例如,当我更新存储库时,我将立即知道哪个特定表已被修改。

这种方法在:代码控制下数据库脚本的最佳实践是什么中进行了描述。目前,我正在编写一个 python 脚本来执行数据库文件夹中的所有 .sql 文件,但是,由于外键约束而导致的依赖关系问题确保我们不能仅以任何顺序运行 .sql 文件。

python 脚本用于生成一个文件,其中包含执行 .sql 文件的顺序。它将按照 .sql 文件在 tableorder.txt 文件中出现的顺序执行这些文件。一个表只有在其外键表被执行后才能被执行,例如:

表格顺序.txt

表3.sql
表1.sql
表7.sql 等等

我已经通过分析“show create table”mysql 命令的结果,从代码生成了每个表的依赖项列表。依赖项列表可能如下所示:

tblstate: tblcountry //tblcountry.sql must be executed before tblstate.sql etc
tblemployee: tbldepartment, tblcountry
Run Code Online (Sandbox Code Playgroud)

要生成 tableorder.txt 的内容,我需要一个如下所示的算法:

function print_table(table):
  foreach table in database:
    if table.dependencies.count == 0
      print to tableorder.txt
    if table.dependencies.count > 0
      print_table(dependency) //print dependency first
end function
Run Code Online (Sandbox Code Playgroud)

正如您所想象的,这涉及大量递归。我开始怀疑这样的努力值得吗?如果有什么工具吗?有什么工具(或算法)可以生成执行单独的 .sql 表和视图的顺序列表,同时考虑依赖性?是对每个表/视图单独的 .sql 文件进行版本控制更好,还是对整个数据库进行版本控制到单个 .sql 文件更好?我将不胜感激任何回复,因为这已经花了很多天了。谢谢。

python mysql database controls version

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

配置ModelSim模拟以显示文本

我可以让ModelSim模拟在信号上显示文本(而不是数值)吗?我有几个州机器状态说,

localparam S_IDLE  = 2'b00; 
localparam S_START = 2'b01; 
localparam S_STOP  = 2'b10;
Run Code Online (Sandbox Code Playgroud)

有没有办法显示S_IDLE例如信号而不是00?谢谢.

verilog modelsim

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

何时拆分大型数据库表?

我正在开发一个'员工'数据库,这些领域开始加起来(20个说).数据库将从不同的UI填充说:

个人信息UI:填充"员工"表的字段,如生日,姓氏,性别等

就业明细UI:填写"员工"表的字段,如员工编号,聘用日期,年级等

从单个UI填充所有字段(如您所想)是混乱的,并导致您需要滚动的一个非常长的形式.

我正在考虑将此表拆分为几个较小的表,这样每个较小的表都会捕获员工的相关信息(即根据UI逻辑拆分表).

然后,这些表将由员工ID加入.我理解用一对一关系拆分表通常不是一个好主意(多数据库表),但是可以在逻辑上拆分表帮助,以便在几个INSERT语句中捕获员工信息?

谢谢.

sql database performance

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

在verilog中增加计数器变量:组合或顺序

我正在为数据路径电路实现FSM控制器.控制器在内部递增计数器.当我模拟下面的程序时,计数器从未更新过.

reg[3:0] counter;

//incrementing counter in combinational block
counter = counter + 4'b1;
Run Code Online (Sandbox Code Playgroud)

但是,在创建额外变量counter_next时,如Verilog Best Practice中所述 - 递增变量并仅在顺序块中递增计数器,计数器会递增.

reg[3:0] counter, counter_next;

//sequential block
always @(posedge clk) 
   counter <= counter_next;

//combinational block
counter_next = counter + 4'b1;
Run Code Online (Sandbox Code Playgroud)

为什么计数器在前一种情况下不会增加?我缺少什么?

hardware verilog fpga sequential

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

在MATLAB中从Nx1向量创建所有可能的Mx1向量

我试图在MATLAB中从1xN向量(字母表)创建所有可能的1xM向量(字).N是> M.例如,我想从4x1"字母表"创建所有可能的2x1"单词" alphabet = [1 2 3 4];

我希望结果如下:

[1 1]
[1 2]
[1 3]
[1 4]
[2 1]
[2 2]
...
Run Code Online (Sandbox Code Playgroud)

我想让M成为我日常工作的输入,我事先并不知道.否则,我可以使用嵌套的for循环轻松完成此操作.无论如何要做到这一点?

arrays algorithm matlab vector

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

在MATLAB中找到另一个向量中元素的位置

假设我有一个向量needle = [3 2 6];,我想在另一个向量中找到其元素的索引haystack = [0 1 2 3 4 5 6 7 8 9];.要返回的结果needle与此版本具有相同的维度[4 3 7].元素needle不一定是唯一的.我已经使用for循环使用函数文件实现了这一点.使用的实现ismember可以工作,但如果两个或多个元素needle相同,ismember则会遇到问题,因为对于所有元素都将返回单个"1" needle相同.

    find(haystack == needle)
Run Code Online (Sandbox Code Playgroud)

也不会像干草堆一样工作,针可能不是同一个维度.

是否有一个整洁的单线,我可以用来实现同样的事情?

matlab

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

使用glob表达式匹配两个整数

我试图匹配/ dev / ttyS0以外的以下路径,即/ dev / ttyS1到/ dev / ttyS99。在我的Linux终端中,我使用:

ls /dev/ttyS[1-9][0-9]*
Run Code Online (Sandbox Code Playgroud)

这不会返回任何东西。下面的表达式虽然将/ dev / ttyS1返回到/ dev / ttyS9。

ls /dev/ttyS[1-9]
Run Code Online (Sandbox Code Playgroud)

关于如何使第一个表达式起作用的任何想法?

linux glob

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

为Python类成员分配默认参数

我试图从一个字典中实例化一个类.在类构造函数中,如果没有给出,我将默认值分配给某些类成员:

class Country(object):
    def __init__(self, continent, country = "Zimbabwe"):
        # do stuff
Run Code Online (Sandbox Code Playgroud)

我实例化的字典具有与我的类成员同名的键.我像这样从dict中实例化:

country = Country(
    continent = dictionary["continent"],
    country   = default_value if "country" not in dictionary else    dictionary["country"]
)
Run Code Online (Sandbox Code Playgroud)

可以看出,字典可能没有与类名对应的密钥.在这种情况下,如果密钥"country"不存在,我希望将类成员国保留为其默认值,即"津巴布韦".有一种优雅的方式来做到这一点?以某种方式的东西:

country = dictionary["country"] if "country" in dictionary else pass
Run Code Online (Sandbox Code Playgroud)

然而,这是不可能的.我知道我可以将默认值的字典作为Country类的静态成员,并且这样做:

country = Country.default_values["country"] if "country" not in dictionary else dictionary["country"]
Run Code Online (Sandbox Code Playgroud)

但这似乎有点矫枉过正.有更好的方法吗?

python arguments

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