小编Bun*_*lan的帖子

MATLAB.if/else if/else语句中的向量化

我需要一些以下代码的帮助:

if x(:,3)>x(:,4)
output=[x(:,1)-x(:,2)];
elseif x(:,3)<x(:,4)
output=[x(:,2)-x(:,1)];
else
output=NaN
end
Run Code Online (Sandbox Code Playgroud)

这是一个示例数据:

matrix x              output
10   5   1   2        -5
10   5   2   1         5     
NaN  1   1   3         NaN
Run Code Online (Sandbox Code Playgroud)

我不确定如何使代码工作.它只需要第一个参数并忽略else if和else参数.请帮忙.谢谢.

matlab if-statement vectorization

7
推荐指数
2
解决办法
1673
查看次数

matlab对一列进行排序并在第二列上保留各自的值

我如何在matlab中进行简单的排序.我总是必须使用excel链接导入我的数据,对其进行排序,然后导出回matlab.这很烦人!

我有一个矩阵<10x10>,我想按降序对第一列进行排序,同时保持第二列的相应值.Matlab似乎只是单独对每列进行排序.

Example:
matrix a
5 4
8 9
0 6
7 3

matrix b (output)
0 6
5 4
7 3
8 9
Run Code Online (Sandbox Code Playgroud)

sorting matlab row

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

matlab:了解matlab的行为

有人可以解释下面的代码片段吗?我没有计算机科学或编程的背景,最近才意识到Matlab.我理解的预分配部分来自data=ceil(rand(7,5)*10)......N*(N-1)/2).

我需要了解matlab如何处理代码kk=0到最后的各个方面.此外,代码以这种方式编纂的原因.没有必要解释以下函数:bsxfun(@minus),它是如何在代码方案中运行的.

data=ceil(rand(7,5)*10); 
N = size(data,2);
b=cell(N-1,1);
c=NaN(size(data,1),N*(N-1)/2); 

kk=0;
for ii=1:N-1
    b{ii} = bsxfun(@minus,data(:,ii),data(:,ii+1:end));
    c(:,kk+(1:N-ii)) = bsxfun(@minus,data(:,ii),data(:,ii+1:end));
    kk=kk+N-ii;
end
Run Code Online (Sandbox Code Playgroud)

matlab bsxfun

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

标签 统计

matlab ×3

bsxfun ×1

if-statement ×1

row ×1

sorting ×1

vectorization ×1