小编gev*_*ang的帖子

方法:可以从Unix命令行获取参数的MATLAB脚本

仅仅为了具体,请在名为的文件中考虑以下超简单的Python脚本add_em:

#!/usr/bin/env python
# script name: add_em

from sys import argv

x = int(argv[1])
y = int(argv[2])
x_plus_y = x + y
print '%d' % x_plus_y
Run Code Online (Sandbox Code Playgroud)

我现在可以运行这个脚本,并从Unix命令行传递参数,如下所示:

% python add_em 3 8
11
Run Code Online (Sandbox Code Playgroud)

如果我使脚本可执行,我甚至不需要python在命令行上提到:

% chmod +x add_em
% add_em 41 -29
12
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何编写(和运行)MATLAB脚本,使其完全像上面的脚本一样执行吗?特别是,它必须能够从Unix命令行读取其参数(而不是例如MATLAB GUI的"命令行"),并将它们的数字和打印到标准输出.

注意:此脚本不必是"独立"; IOW,可以假设MATLAB是本地安装的,甚至可以matlab在命令行中提到(类似于上面的第一种形式,在python命令行上显式调用解释器).

谢谢!

PS:不用说,这个剧本是"强大"的对立面,但我的目标是产生一个容易传达的例子.

matlab command-line command-line-arguments

8
推荐指数
1
解决办法
5516
查看次数

在Python中初始化空矩阵

我试图在Python中转换MATLAB代码.我不知道如何在Python中初始化空矩阵.

MATLAB代码:

demod4(1) = [];
Run Code Online (Sandbox Code Playgroud)

我试过Python

demod4[0] = array([])
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

only length-1 arrays can be converted to Python scalars
Run Code Online (Sandbox Code Playgroud)

python matlab numpy

7
推荐指数
4
解决办法
5万
查看次数

余弦相似度

我计算了两个文件的tf/idf值.以下是tf/idf值:

1.txt
0.0
0.5
2.txt
0.0
0.5
Run Code Online (Sandbox Code Playgroud)

文件如下:

1.txt = > dog cat
2.txt = > cat elephant
Run Code Online (Sandbox Code Playgroud)

如何使用这些值来计算余弦相似度?

我知道我应该计算点积,然后通过它找到距离并除以点积.如何使用我的值来计算?

还有一个问题:两个文件应该有相同数量的单词是否重要?

java trigonometry similarity tf-idf dot-product

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

在MATLAB中可视化高斯混合模型聚类

我必须编写一个分类器(高斯混合模型)来用于人类动作识别.我有4个视频数据集,每个数据包含12个我想要识别的动作.我选择其中3个作为训练集,其中1个作为测试集.对于每个帧,我提取了907个我观察到的特征.在我在训练集上应用GM模型之前,我在其上运行PCA.所以我只考虑50个组件.

我构建了GM模型,每个动作都有一个集群.

gm = gmdistribution.fit(data, cluster_num, 'Options', options, 'CovType','diagonal','Regularize', 1e-10, 'SharedCov', true);
Run Code Online (Sandbox Code Playgroud)

现在我希望有一个视觉反馈,以了解群集是否运行良好或数据是否被错误分类.

有可能有这样的事吗? 在此输入图像描述

matlab plot classification cluster-analysis visualize

6
推荐指数
1
解决办法
5704
查看次数

在MATLAB中将数字转换为单元格数组中的字符串

我有一个包含数字和字符串数据的单元格数组.我需要将数字转换为字符串,以便我可以使用该unique()函数.

a = {1; 4; 'lf'}
result --> {'1', '4', 'lf'}; % Now unique() function can be used
Run Code Online (Sandbox Code Playgroud)

有在线解决方案来处理列是数字的情况.但这些不能在这里使用,因为至少有一行有字符串作为数据.应该理解矢量化解决方案.

string matlab type-conversion cell-array

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

MATLAB:多线程和多核之间的区别

我有一个i7-M620处理器,每个核心有2个物理内核和2个线程(多线程CPU)(总共4个线程).当我使用MATLAB Parallel Computing Toolbox时,我只能打开2个池而不是4个.这是代码:

matlabpool(2)
parfor i = 1:20
    Test(i) = i^2;
end
matlabpool close
Run Code Online (Sandbox Code Playgroud)
  • 有人能解释为什么吗?
  • 我在这里做多线程或多核计算吗?
  • 可以用MATLAB做到这两点吗?

matlab multithreading

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

在没有for循环的情况下更改矩阵的多个元素(已知坐标)

我有一个矩阵说

Z = [1 2 3;
     4 5 6;
     7 8 9]
Run Code Online (Sandbox Code Playgroud)

我必须将其值(例如位置(2,2)和(3,1))更改为某个指定值.我有两个矩阵rowNoscolNos含有这些位置:

rowNos = [2, 3]
colNos = [2, 1]
Run Code Online (Sandbox Code Playgroud)

假设我想将这些位置的元素值更改为0.

如何在不使用for循环的情况下完成它?

matlab vectorization

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

为什么以及如何在cstdlib中的global和std命名空间中存在rand()?

据我所知rand(),作为示例函数<cstdlib>,存在于全局和std命名空间中.

实际上,以下将编译没有错误,即调用std::rand()rand()将是合法的.

#include <cstdlib>    
int main() {
    std::rand();
    rand();    
}
Run Code Online (Sandbox Code Playgroud)

它的用途是什么以及它是如何实现的(函数在两个命名空间中)?

c++ namespaces std

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

使用预定义数量的子矩阵行在MATLAB中拆分矩阵

我有一个矩阵A.

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

我想根据用户的输入说明拆分这个矩阵 d = [1 2 3].

for i=2:length(d)
  d(i) = d(i) + d(i-1); % d = [1 3 6]
end
Run Code Online (Sandbox Code Playgroud)

这给了d = [1 (1+2) (1+2+3)] = d[1 3 6].有9排在这个矩阵,计算ceil[(1/6)*9], [(3/6)*9][(6/6)*9].因此,这给出[2 5 9].第一次分割是前两行,第二次分割是下一行(5-2 …

matlab matrix

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