假设我有单元格数组
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
Run Code Online (Sandbox Code Playgroud)
如果我想找到索引,我该怎么办'KU'
?
例如,这个URL:
http://example.com/get_image?type=1
Run Code Online (Sandbox Code Playgroud)
应该返回image/gif
MIME类型的响应.我有两个静态.gif
图像,
如果type是1,它应该返回ok.gif
,否则返回error.gif
.如何在烧瓶中做到这一点?
以下错误经常发生:
下标索引必须是实数正整数或逻辑
我发现了很多关于这个的问题,但没有一个有一个非常通用的答案.因此,我希望有解决这个问题的一般解决方案.
我总是假设使用for
循环迭代空向量与完全没有循环相同.但是,我偶然发现了这种奇怪的行为:
for t = [] %// Iterate an empty 0x0 matrix
1
end
for t = ones(1, 0) %// Iterate an empty 1x0 matrix
2
end
for t = ones(0, 1) %// Iterate an empty 0x1 matrix
3
end
Run Code Online (Sandbox Code Playgroud)
结果是:
ans =
3
Run Code Online (Sandbox Code Playgroud)
它是否有意义,或者这是一个错误?
我有一个矢量x = (1, 2, 3)
,我想显示(打印)它Answer: (1, 2, 3)
.
我尝试了很多方法,包括:
disp('Answer: ')
strtrim(sprintf('%f ', x))
Run Code Online (Sandbox Code Playgroud)
但我仍然无法以我需要的格式打印它.
有人能指出我的解决方案吗?
编辑:
两个值和(长度)x
都不提前知道.
在分析平凡循环的速度的过程中,我遇到了这种奇怪的现象.
对变量不做任何事情要比使用变量做得慢得多.
当然这不是一个真正的问题,因为你不会经常感觉到编写什么都不做的代码的冲动,但这让我感到惊讶,所以我想知道是否有人理解发生的事情以及这在实际情况下是否会成为一个问题.
这是我发现的:
tic,for t= 1:1e6, x=x; end,toc %This runs very fast, about 0.07 sec
y=x; tic,for t= 1:1e6, y=x; end,toc %This runs fast, about 0.11 sec
tic,for t= 1:1e6, x; end,toc %This takes over half a second?!
Run Code Online (Sandbox Code Playgroud)
我尝试在循环中添加一个简单的计算,以确保循环不会被优化掉,但这并没有改变结果.
总结一下,我的问题是:
发生了什么,我应该担心吗?
在R中进行探索性分析的重复试验中积累的分类标签构建多变量数据的正确方法是什么?我不想回到MATLAB.
我喜欢R的分析函数和语法(以及令人惊叹的绘图)比MATLAB更好,并且一直在努力重构我的东西.但是,我一直对工作中数据的组织方式感到困惑.
我通常使用多个时间序列来重复多次试验,这些试验存储在SERIESxSAMPLESxTRIALS 的大矩阵 秩-3张量多维数组中.这偶尔适用于一些不错的线性代数东西,但是当涉及另一个变量,即CLASS时,它是笨拙的.通常,类标签存储在尺寸为1x的另一个矢量中TRIALS
.
在分析方面,我基本上尽可能少地绘制,因为需要做很多工作来组合一个非常好的情节,教你很多关于MATLAB中的数据.(我不是唯一一个有这种感觉的人).
在R中我一直坚持尽可能接近MATLAB结构,但是当试图保持类标签分离时,事情变得非常复杂; 即使我只使用它们的属性,我也必须继续将标签传递给函数.所以我所做的就是通过CLASS将数组分成一个数组列表.这增加了我所有apply()
功能的复杂性,但在保持一致性(和错误)方面似乎是值得的.
另一方面,R对于张量/多维数组似乎并不友好.只是为了与他们合作,你需要抓住abind
图书馆.关于多变量分析的文档,比如这个例子似乎是假设你有一个巨大的2-D数据点表,比如一些长期的中世纪滚动数据框,并且没有提到如何从我所在的位置获得'那里' .
一旦我对绘制的数据进行绘图和分类,它就不是一个大问题了,因为到那时我一直在使用像TRIALSxFEATURES这样的形状的数据框架友好结构(melt
对此有很大帮助).另一方面,如果我想快速生成探索阶段的散点图矩阵或latticist直方图集(即统计矩,分离,类/方差,直方图等),我必须停下来弄清楚如何我将apply()
这些巨大的多维数组转换为这些库所理解的东西.
如果我继续在丛林中捣乱,为此提出临时解决方案,我要么永远不会变得更好,要么我最终会以自己奇怪的巫术方式结束,这对任何人都没有意义.
那么,对于R中的探索性分析,在重复试验中积累的分类标签构建多变量数据的正确方法是什么?拜托,我不想回到MATLAB.
额外奖励:我倾向于在多个主题的相同数据结构上重复这些分析.有没有比将代码块包装到for
循环更好的通用方法?
问题是如何使用Hadoop Streaming(仅限)在Hadoop中链接作业.
我正在寻找一种方法来列出两个.mat文件之间的差异,这对许多人来说都是有用的.
虽然我搜遍了我能想到的任何地方,但我找不到任何符合我要求的东西:
我最接近的是visdiff
.只要我留在matlab中,它就可以让我浏览差异,但是当我保存结果时它只显示我的最高级别.
以下是我的文件通常如下所示的简化示例:
a = 6;
b.c.d = 7;
b.c.e = 'x';
save f1
f = a;
clear a
b.c.e = 'y';
save f2
visdiff('f1.mat','f2.mat')
Run Code Online (Sandbox Code Playgroud)
如果我点击这里b
,我可以找到差异.但是如果我运行它并使用'file> save',我无法点击b
.因此,我仍然不知道改变了什么.
注意:我没有Simulink
因此我的问题是:
如何在没有Matlab的情况下向2人显示2个mat文件之间的所有差异
以下是我个人认为最适合不同情况的答案:
如何在MATLAB中获得1D数组中"n个最小元素"的索引?
该数组是行向量.
我可以找到最小元素及其索引;
[C, ind] = min(featureDist);
Run Code Online (Sandbox Code Playgroud)
矢量如下:
featureDist =
Columns 1 through 8
48.4766 47.3743 59.5736 59.7450 55.0489 58.2620 63.3865 50.1101
Run Code Online (Sandbox Code Playgroud)
等等...