小编gme*_*oni的帖子

分配具有多个条件的值

我们有一个M = [10 x 4 x 12]矩阵.作为例子,我采取M(:,:,4):

val(:,:,4) =

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

我怎样才能得到这个:

val(:,:,4) =

     0     0     3     0
     0     2     2     2
     0     0     0     4
     1     1     1     1
     1     1     0     1
     0     2     2     2 …
Run Code Online (Sandbox Code Playgroud)

matlab matrix

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

随机唯一整数值

有替代品randi,我需要唯一的整数值.使用randiPianoSperimentale矩阵可包含重复整数值.

lover_bound = 10;
upper_bound = 180;
steps = 10;
NumeroCestelli = 8; 

livello = [lover_bound:steps:upper_bound];
L = length(livello);
n_c = 500 000
NumeroCestelli = 8

randIdxs = randi([1,L],n_c,NumeroCestelli);
PianoSperimentale = single(livello(randIdxs)); 
Run Code Online (Sandbox Code Playgroud)

替代方案需要快速并支持非常大的矩阵.在过去我使用这个:

[PianoSperimentale] = combinator(L,NumeroCestelli,'c','r');

for i=1:L
    PianoSperimentale(PianoSperimentale==i)=livello(i);
end
Run Code Online (Sandbox Code Playgroud)

但是太慢而痛苦.(见组合者)

random matlab matrix

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

vec2mat w /列数不同

参考reshape row wise w /不同的开始/结束元素数 @Divakar带来了一个很好的解决方案但是,如果列数不总是相同怎么办?

样品运行 -

>> A'
ans =
     4     9     8     9     6     1     8     9     7     7     7     4     6     2     7     1
>> out
out =
     4     9     8     9     0     0
     6     1     8     9     7     7
     7     4     6     2     7     1
Run Code Online (Sandbox Code Playgroud)

我只拿了A的前4个项并把它们放进去,然后用剩下的2个空单元填充0.所以ncols = [4 6 6].不幸的是vet2mat,不允许矢量作为列号.

有什么建议?

matlab matrix reshape

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

标签 统计

matlab ×3

matrix ×3

random ×1

reshape ×1