迭代MATLAB中的字符串列表

时间:2012-05-21 14:52:44

标签: string matlab loops

我正在尝试迭代MATLAB中的字符串列表。问题是,在'for'循环中,我的迭代器被认为是'cell'而不是字符串。

for str = {'aaa','bbb'}
  fprintf('%s\n',str);
end

??? Error using ==> fprintf
Function is not defined for 'cell' inputs.

解决此问题的正确\优雅方法是什么?

3 个答案:

答案 0 :(得分:29)

您应该通过str{1}调用单元格的内容,如下所示:

for str = {'aaa','bbb'}
  fprintf('%s\n',str{1});
end

这是关于单元格数组打印内容的more sophisticated example

答案 1 :(得分:6)

str={'aaa','bbb'};
fprintf('%s\n',str{:});

无需for循环。

编辑: 另见:cellfun

答案 2 :(得分:1)

从R2016b开始,您可以使用string arrays

<Style x:Key="textBoxStyle" TargetType="{x:Type TextBox}">
        <Style.Resources>
            <Style x:Key="{x:Type ToolTip}" TargetType="{x:Type ToolTip}">
                <Setter Property="Background" Value="Red"/>
                <Setter Property="Foreground" Value="White"/>
            </Style>
        </Style.Resources>
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel LastChildFill="True">
                        <Border BorderBrush="Red" BorderThickness="2"  >
                            <AdornedElementPlaceholder x:Name="adornedElement"/>
                        </Border>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true">
                <Setter Property="Foreground" Value="Red"/>
                <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
            </Trigger>
        </Style.Triggers>
    </Style>