在matlab上使用strfind时出错

时间:2015-07-17 20:24:14

标签: matlab

有人能理解这个吗?这真让我抓狂。为什么我收到错误?

.cd-bouncy-nav {
  position: absolute;
  left: 48%;
  top: 50vh;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
  width: 90%;
  max-width: 300px;
}
.cd-bouncy-nav li {
  width: 50%;
  float: left;
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transform: translateY(100vh);
  -moz-transform: translateY(100vh);
  -ms-transform: translateY(100vh);
  -o-transform: translateY(100vh);
  transform: translateY(100vh);
  text-align: center;
}
.cd-bouncy-nav a {
  display: inline-block;
  min-width: 80px;
  position: relative;
  padding: 90px 20px 0;
  margin-bottom: 30px;
  color: #ffffff;
  cursor: default !important;
  font-family: 'Ubuntu', sans-serif;

}

.cd-bouncy-nav a:hover {
  text-decoration: none;
}

.cd-bouncy-nav a::before {
  /* icons */
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  right: auto;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  height: 80px;
  width: 80px;
  border-radius: 50%;
  background-color: #bcaf96;
  /*background-image: url("../img/cd-category-icons.svg");*/
  background-repeat: no-repeat;
  background-image: url("../img/browser.svg");
  /*background-position: 0 0;*/
  background-position: 20px 20px;
}
.no-touch .cd-bouncy-nav a:hover::before {
  background-color: #DC965A;
}
.cd-bouncy-nav li:nth-of-type(2) a::before {
  /*background-position: -80px 0;*/
  background-image: url("../img/mobile.svg");
}
.cd-bouncy-nav li:nth-of-type(3) a::before {
  /*background-position: -160px 0;*/
  background-image: url("../img/diamond.svg");
}
.cd-bouncy-nav li:nth-of-type(4) a::before {
  /*background-position: -240px 0;*/
  background-image: url("../img/pulse.svg");
}
.cd-bouncy-nav li:nth-of-type(5) a::before {
  /*background-position: -320px 0;*/
  background-image: url("../img/planet.svg");
}
.cd-bouncy-nav li:nth-of-type(6) a::before {
  /*background-position: -400px 0;*/
  background-image: url("../img/lab.svg");
}
@media only screen and (min-width: 768px) {
  .cd-bouncy-nav {
    max-width: 450px;
  }
  .cd-bouncy-nav li {
    width: 33.33%;
    float: left;
  }

}

1 个答案:

答案 0 :(得分:4)

那是因为street(j,1)本身是一个单元格数组。您正在切入单元格数组,但不会解压缩其内容。因此,strfind的两个输入都是单元格数组,错误表示一个输入必须是单元格数组,另一个输入必须是字符数组(如果发生这种情况)。

你可能想要比较两个字符数组,所以这样做:

>> strfind(Fullnx{i,2}, street{j,1});

通过检查每个输入的class来自行仔细检查。执行class(Fullnx{i,2})class(street(j,1))并自行检查数据类型。您会看到一个类型为char,另一个类型为cell。但是,如果您真的希望使用您的语法,只需交换输入:

>> strfind(street(j,1), Fullnx{i,2});

单元格数组输入的用处是,如果单元格数组中有一串字符串,则第二个输入是询问您要在单元格数组中的每个单元格中搜索的模式/文本(第一次输入) )。输出将为您提供一个数值数组的单元格数组,为您提供每次出现的模式/文本的位置索引。

作为奖励,这里有一个示例:

>> c = {'hello', 'how', 'are', 'you'};
>> out = strfind(c, 'el')

out = 

    [2]    []    []    []

我在c中有一个字符串的单元格数组,我想在单元格数组中的每个字符串上找到字符'el'。输出是另一个单元格数组,我们找不到第一个字符串以外的字符序列,它从索引2开始。

相关问题