我正在尝试迭代MATLAB中的字符串列表。问题是,在'for'循环中,我的迭代器被认为是'cell'而不是字符串。
for str = {'aaa','bbb'}
fprintf('%s\n',str);
end
??? Error using ==> fprintf
Function is not defined for 'cell' inputs.
解决此问题的正确\优雅方法是什么?
答案 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>