我想创建一个在矩阵 (A) 的不同行中找到模式的变量(比如说 [1 1])。当然,该字符串在每一行中出现的次数并不相同。
A = [ 0 0 0 1 1
1 1 1 0 0
0 1 0 1 1
1 1 1 0 0
0 1 0 0 1
1 0 1 1 1
0 1 0 1 0
1 1 1 0 1];
我可以做:
for i = 1:n
var(i,:) = strfind(A(i,:),[1 1]);
end
但是等式的两边就不相等了。
错误: ???下标分配尺寸不匹配。
我尝试预先分配。我创建了一个矩阵,我认为该字符串在矩阵 A 的每一行中出现的最大次数(比如 50 次)。
for i = 1:n
var(i, :) = NaN(1,50)
end
紧随其后的是前面的代码,也不好。
我也试过:
for i = 1:n
var(i,1:numel(strfind(A(i,:),[1 1])) = strfind(A(i,:),[1 1])
end
错误:等号左侧的表达式不是赋值的有效目标。
我该怎么做呢?
我期望的输出是一个矩阵 var(i,:),它为我提供了矩阵中每个模式出现的位置。它只适用于一排。
例如:
var(1,:) = [1 2 5 8 10 22 48]
var(2,:) = [2 3 4 7 34 45 NaN]
var(3,:) = [4 5 21 32 33 NaN]
谢谢!