小编Cap*_*rog的帖子

MATLAB图形绘图:在绘图期间指定图例标签

我正在以典型的MATLAB散点图格式绘制数据.通常在绘制多个数据集时,我会使用命令'hold on;',然后绘制每个数据,然后按此来获取我的图例:

legend('DataSet1', 'DataSet2') % etcetera
Run Code Online (Sandbox Code Playgroud)

但是,我在同一轴上绘制的(多个)数据集不一定每次都是相同的数据集.我在同一轴上绘制了多达六组不同的数据,并且可以显示这些数据的任意组合(取决于用户选择显示的内容).显然,如果我想以传统的方式设置传奇,那将是很多其他的.

我真正想要做的是为每个DataSet分配一个名称,以便之后我可以调用所显示的所有数据的图例.

...或者,任何人都能想到的这个问题的任何其他解决方案......?

matlab legend

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

MATLAB:快速反转布尔值

有没有比以下更快的方式将"真或假"翻转到其相反的状态?

if x == true
 x = false;
else
 x = true;
end
Run Code Online (Sandbox Code Playgroud)

是的,也许只有五行代码没什么可担心的,但看起来更像这样的东西会很棒:

x = flip(x);
Run Code Online (Sandbox Code Playgroud)

matlab boolean

8
推荐指数
3
解决办法
7152
查看次数

忽略标点符号的排序(Objective-C)

我正在尝试对iOS UITableView对象进行排序.我目前正在使用以下代码:

// Sort terms alphabetically, ignoring case
[self.termsList sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)

这对我的清单排序,惠斯特无视案例.但是,忽略标点符号也会很好.例如:

c.a.t.
car
cat
Run Code Online (Sandbox Code Playgroud)

应按如下方式排序:

car
c.a.t.
cat
Run Code Online (Sandbox Code Playgroud)

(实际上,两只猫(猫或猫)中的哪一只首先出现并不重要,只要它们彼此相邻排序即可.

有一个简单的方法来解决这个问题吗?我假设解决方案将涉及从字符串中提取JUST字母数字字符,然后比较它们,然后将它们返回到以前的状态,并再次包含非字母数字字符.

事实上,我真正关心的唯一字符是句点(.),但是如果有一个解决方案可以轻松涵盖所有标点符号,那么知道它就会很有用.

注意:我在一个月前问过这个完全相同的Java问题.现在,我在Objective-C中创建了相同的解决方案.我想知道iOS API是否有任何技巧可以让这个变得简单...

编辑:我已尝试使用以下代码去除标点符号并填充我排序的另一个数组(由@tiguero建议).但是,我不知道如何做最后一步:实际按照第二个数组的顺序对第一个数组进行排序.这是我的代码:

    NSMutableArray *arrayWithoutPunctuation = [[NSMutableArray alloc] init];
    for (NSString *item in arrayWithPunctuation)
    {
        // Replace hyphens/periods with spaces
        item = [item stringByReplacingOccurrencesOfString:@"-" withString:@" "]; // ...hyphens
        item = [item stringByReplacingOccurrencesOfString:@"." withString:@" "]; // ...periods
        [arrayWithoutPunctuation addObject:item];
    }
    [arrayWithoutPunctuation sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)

这提供了'arrayWithoutPunctuation',它被排序,但当然不包含标点符号.这是不好的,因为虽然它现在排序很好,但它不再包含对数组首先至关重要的标点符号.我需要做的是根据'arrayWithoutPunctuation'的顺序排序'arrayWithPunctuation'...任何帮助表示赞赏.

sorting objective-c

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

使用GetKeyState()

我希望在按下某个键时有一个布尔事件切换.具体来说,是's'键.我已经指向函数GetKeyState(),它应该在Win32 API下工作.我理解字母's'的ASCII码是115,所以我的代码如下:

if (GetKeyState(115) == 1)
{
<EVENT>
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.为什么?这是MSDN参考:http://msdn.microsoft.com/en-us/library/ms646301%28v=vs.85%29.aspx ..."如果低位为1,则键被切换"

c++ winapi keypress

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

MATLAB:暂停程序并等待按键

我正在编写一个程序,在某个程序中绘制图形并在屏幕上显示.然后,用户需要按'y'或'n'接受或拒绝图表.我目前的解决方案使用PsychToolbox(实际解决方案不需要),其中包括一个名为'KbCheck'的命令,该命令在调用所有键盘按钮的状态时进行检查.我的代码看起来像这样:

function [keyPressed] = waitForYesNoKeypress
keyPressed = 0; % set this to zero until we receive a sensible keypress
while keyPressed == 0 % hang the system until a response is given
    [ keyIsDown, seconds, keyCode ] = KbCheck; % check for keypress
    if find(keyCode) == 89 | find(keyCode) == 78 % 89 = 'y', 78 = 'n'
        keyPressed = find(keyCode);
    end
end
Run Code Online (Sandbox Code Playgroud)

问题是,在按下某个键之前,系统确实会"挂起".理想情况下,我可以滚动,缩放,并且通常与屏幕上绘制的图形进行交互,这样我就可以真正决定是否要按'y'或'n'!

我试过添加'drawnow;' 进入上面的while循环,但这不起作用:我接受或拒绝它们之前,我仍然无法与绘制的图形进行交互.

解决方案不必使用PsychToolbox; 我假设还有很多其他选择吗?

谢谢

matlab keypress

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

复制范围并粘贴到新工作簿中

这应该是非常简单的,但我已经拖网搜索论坛和SO答案几个小时没有运气找到答案,所以我(不情愿地)创建了一个我自己的问题.

我要做的只是创建一个新工作簿,并将另一个工作簿中的范围粘贴到该工作簿中.听起来很简单..?

我的原始工作簿,让我们打电话给Book1.我正在尝试创建一个新的工作簿Book2,我将单元格A1:B10 的复制到.

这是我的代码的一个版本(从Book1打开开始):

Range("A1:B10").Copy
Set NewBook = Workbooks.Add
    With NewBook
        .SaveAs Filename:="Book2.xls"
    End With
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Run Code Online (Sandbox Code Playgroud)

这给出了"RangeSpecial of Range class failed"错误.我尝试了以下修复,没有运气:

  • 添加了'Workbooks("Book2.xls").激活'代码
  • 删除了PasteSpecial行中的额外参数
  • 试过'.Paste'代替'.PasteSpecial'
  • 将'Selection.PasteSpecial'更改为'ActiveSheet.PasteSpecial'
  • 显式引用复制范围,包括工作簿和工作表引用
  • 首先创建新工作簿,然后执行复制,然后重新激活新工作簿并粘贴

上述解决方案都不起作用......现阶段的任何智慧都会感激不尽!

excel vba excel-vba

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

ArrayAdapter - 使用多个搜索词进行过滤

我最近在这个SO问题上添加了一笔赏金,但是我意识到原始问题要求使用SimpleAdapter而不是ArrayAdapter.所以,这个问题与ArrayAdapter有关:

我希望能够使用多个搜索词在ListView中过滤ArrayAdapter.例如,如果我的列表包含以下项目:

a thing
another thing
a different thing
nothing
some thing
Run Code Online (Sandbox Code Playgroud)

如果我搜索"事物" ,则应在过滤结果中返回所有条款.这是可以使用以下代码完成的正常行为:

    private TextWatcher filterTextWatcher = new TextWatcher() {

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        myAdapter.getFilter().filter(s.toString());
    }
};
Run Code Online (Sandbox Code Playgroud)

然而; 如果我输入搜索短语' a thing',我希望显示以下结果:

a thing
another …
Run Code Online (Sandbox Code Playgroud)

android listview filtering android-arrayadapter

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

使用OSC在纯数据和MATLAB之间进行通信

我正在尝试接收通过OSC从Pure Data(或Max/MSP)发送到MATLAB的消息.

  • 我能够将纯数据的OSC消息发送到纯数据
  • 我可以将消息从MATLAB发送到MATLAB
  • 我甚至可以从MATLAB向Pure Data发送消息
  • ......我真的很难让纯数据与MATLAB交谈

这是我从MATLAB发送消息的代码(我使用的是oscmex协议):

host = 'localhost'; % local host UDP address
sendPort = 3333; % UDP port number to send over
receivePort = 3333; % UDP port number to receive from
oscAddress = osc_new_address(host, sendPort); % open send address
oscServer = osc_new_server(receivePort); % open server

dataPacket = struct('path','/foo','tt','f','data',{num2cell([1.0])}); % create packet
osc_send(oscAddress, dataPacket); % write packet to OSC

oscMessage = osc_recv(oscServer, 0.1); % listen for packet on OSC

% check to see if anything is …
Run Code Online (Sandbox Code Playgroud)

matlab udp osc max-msp-jitter puredata

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

匹配轴缩放

我使用'plot3'函数绘制了3D数据.我想约束Y轴和Z轴,使它们在尺度上相等.X轴应像往常一样自动缩放.

我从这里知道我可以通过使用命令使X轴成为唯一一个自动缩放的轴:

axis 'auto x';
Run Code Online (Sandbox Code Playgroud)

但是,这会导致Y轴和Z轴仅从0到1绘制; 我的数据在所有轴上都经常超过这个.我正在寻找的是一个包含单个视图中所有数据的图,但是缩小了Y轴或Z轴的最小值,以便Y轴和Z轴的比例相等.

我们将非常感激地提供任何帮助.

matlab plot

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

MATLAB R2014b:在同一位置使用线条绘制图形

从版本R2014b开始,MATLAB现在渲染图形很好地消除锯齿(最后!)

然而,这会导致显示我的一些数字的方式出现故障.如果我绘制一条线,使用hold on然后在不同颜色的完全相同的位置绘制另一条线,则该线以两种颜色的斑驳组合出现.在过去,该线条将简单地显示为在该位置绘制的最后一种颜色.

以下是蓝色迹线的示例,其中一些部分(较陡的位)显示绿线.在以前的MATLAB版本中,绿线将是连续的,但现在一些蓝线显示出来.

在此输入图像描述

在新版本中是否有一种巧妙的解决方法,或者我必须确保在绘制到同一个地方之前删除任何现有的行?

matlab plot matlab-figure matlab-hg2

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