在我的代码的循环中,我使用单行查找并绘制一些潜在的最小值(为清楚起见:7对应于包含潜在值的单元格,5对应于x值):
plot(PDdata{subject,5}{1,1}(find(PDdata{subject,7}==...
min(PDdata{subject,7}))),min(PDdata{subject,7}),'ko')
Run Code Online (Sandbox Code Playgroud)
现在Matlab建议使用逻辑索引而不是FIND,尽管我只是简单地研究过它,但它并没有让我觉得我应该在这里做些什么.这里的主要问题是我是否应该使用逻辑索引(我更喜欢将其保持为单行!),如果是这样的话:怎么样?
我提前为提出这样一个小问题道歉,但我正在努力增加我的Matlab知识,所以希望简短的回答会帮助我!
由于没有特殊原因,我想知道是否可以在一个数组或矩阵中选择n个最大值,所有这些都在oneliner中.
说我有阵列:
A=randn(1,100);
Run Code Online (Sandbox Code Playgroud)
我想要最大的,例如20个值,最好从高到低排序.到目前为止,我有2个班轮:
A_ordered = sort(A,'descend');
A_big20 = A_ordered(1:20);
Run Code Online (Sandbox Code Playgroud)
有谁知道这是否可能在一行?如果是这样,我会很感激线索,想法或答案!
我们处理了很多敏感数据,我想仅使用每个名称部分的第一个和最后一个字母来掩盖乘客姓名,并将它们连接成三个星号(***),
例如:'John Doe'这个名字将成为'J***n D***e'
对于由两部分组成的名称,可以通过使用表达式查找空间来实现:
LEFT(CardHolderNameFromPurchase, 1) +
'***' +
CASE WHEN CHARINDEX(' ', PassengerName) = 0
THEN RIGHT(PassengerName, 1)
ELSE SUBSTRING(PassengerName, CHARINDEX(' ', PassengerName) -1, 1) +
' ' +
SUBSTRING(PassengerName, CHARINDEX(' ', PassengerName) +1, 1) +
'***' +
RIGHT(PassengerName, 1)
END
Run Code Online (Sandbox Code Playgroud)
但是,乘客姓名可以有两个以上的部分,没有实际限制.我怎样才能找到表达式中所有空格的索引?或者我应该以不同的方式解决这个问题?
非常感谢任何帮助或指针!
我有一个矩阵,说:
y=rand(100,101);
Run Code Online (Sandbox Code Playgroud)
现在我想平均第一维,并只使用部分输出(比如只有奇数索引)到另一个函数中.所以我能做到
ymean=mean(y,1)
Run Code Online (Sandbox Code Playgroud)
然后
ymean_partial=somefunction(ymean(1:2:length(ymean)))
Run Code Online (Sandbox Code Playgroud)
但我现在的问题是(假设有可能):我怎么能这样做而不必声明'虚拟变量' ymean?我想知道是否有一个我可以使用的单行,因为这个额外的变量占用了大量矩阵的大量内存(我倾向于喜欢单行).
非常感谢!