考虑在大小为N-by-M的网格上排列的一组点.我正在尝试构建邻接矩阵,以便连接相邻点.
例如,在带有图形的3x3网格中:
1-2-3
| | |
4-5-6
| | |
7-8-9
Run Code Online (Sandbox Code Playgroud)
我们应该有相应的邻接矩阵:
+---+------------------------------------------------------+
| | 1 2 3 4 5 6 7 8 9 |
+---+------------------------------------------------------+
| 1 | 0 1 0 1 0 0 0 0 0 |
| 2 | 1 0 1 0 1 0 0 0 0 |
| 3 | 0 1 0 0 0 1 0 0 0 |
| 4 | 1 0 0 0 1 0 1 0 0 |
| 5 …Run Code Online (Sandbox Code Playgroud) 我有两个字符串的单元格数组,我想检查它们是否包含相同的字符串(它们不必按相同的顺序排列,也不知道它们是否具有相同的长度).
例如:
a = {'2' '4' '1' '3'};
b = {'1' '2' '4' '3'};
Run Code Online (Sandbox Code Playgroud)
要么
a = {'2' '4' '1' '3' '5'};
b = {'1' '2' '4' '3'};
Run Code Online (Sandbox Code Playgroud)
首先我想到了,strcmp但它需要循环一个单元格内容并与另一个进行比较.我也考虑ismember使用类似的东西:
ismember(a,b) & ismember(b,a)
Run Code Online (Sandbox Code Playgroud)
但是我们事先并不知道它们的长度相同(显然是不平等的情况).那么,如果不编写过多的if/else案例,你将如何以最有效的方式进行这种比较.
我有单元格数组,每个单元格包含一个值序列作为行向量.序列包含一些由表示的缺失值NaN.
我想用某种插值方法替换所有的NaN,我怎样才能在MATLAB中做到这一点?我也对如何处理这些缺失值的其他建议持开放态度.
请考虑此示例数据来说明问题:
seq = {randn(1,10); randn(1,7); randn(1,8)};
for i=1:numel(seq)
%# simulate some missing values
ind = rand( size(seq{i}) ) < 0.2;
seq{i}(ind) = nan;
end
Run Code Online (Sandbox Code Playgroud)
结果序列:
seq{1}
ans =
-0.50782 -0.32058 NaN -3.0292 -0.45701 1.2424 NaN 0.93373 NaN -0.029006
seq{2}
ans =
0.18245 -1.5651 -0.084539 1.6039 0.098348 0.041374 -0.73417
seq{3}
ans =
NaN NaN 0.42639 -0.37281 -0.23645 2.0237 -2.2584 2.2294
Run Code Online (Sandbox Code Playgroud)
编辑:
根据回复,我认为存在一个混乱:显然我不使用随机数据,上面显示的代码只是数据结构的一个例子.
实际数据是某种形式的处理信号.问题是在分析过程中,如果序列包含缺失值,我的解决方案将会失败,因此需要进行过滤/插值(我已经考虑过使用每个序列的平均值来填充空白,但我希望有更强大的功能)
举个简单的例子:
a = [1 2i];
x = zeros(1,length(a));
for n=1:length(a)
x(n) = isreal(a(n));
end
Run Code Online (Sandbox Code Playgroud)
为了对代码进行矢量化,我尝试了:
y = arrayfun(@isreal,a);
Run Code Online (Sandbox Code Playgroud)
但结果不一样:
x =
1 0
y =
0 0
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
arrays matlab vectorization complex-numbers elementwise-operations
matlab ×4
arrays ×1
cell-array ×1
comparison ×1
graph-theory ×1
matrix ×1
missing-data ×1
nan ×1
string ×1