【问题标题】:C Structure like variables in MATLABMATLAB中的C结构类变量
【发布时间】:2012-09-12 22:17:11
【问题描述】:

我想要做的是拥有 Q - 10 位和 C - 4 位并执行操作 -

Q,C = Q,C << 1(将 C 的 MSB 左移到 Q 的 LSB)

Q,C 在 14 位中被视为 C 中的结构。这在 verilog 中本机支持,可以通过 C 中的结构来实现。如何在 MATLAB 中做类似的事情?

【问题讨论】:

  • Q的MSB在运算过程中会丢失还是Q变成11位?
  • 在我正在实现的算法中,它变成了 11 位,但如果它现在丢失我还好。我总是可以让它更长。

标签: matlab concatenation structure unions


【解决方案1】:

我认为 matlab 不支持 c 风格的联合。它确实具有bitshift 函数,使您能够使用算术解决这个问题。

% Q is 10 bits, C is 4 bits
% Create QC. 
QC = bitshift(Q, 4) + C;  

% Bit shift QC by 1
QC = bitshift(QC,1);

%Grab QC bits 13->4 and save as Q
Q = bitshift(QC, -4);

%get QC bits 3->0 and save as C
C = bitand(QC, 2^(4+1)-1);

【讨论】:

  • 谢谢。这应该可以完成工作。我想我的想法是因为缺乏结构而被限制了。
猜你喜欢
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多